carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package main
2
3import (
4 "os"
5 "regexp"
6 "testing"
7)
8
9// TestEveryRegisteredClaimWorkerIsStarted: registerClaimWorkers
10// (internal/console/claim_workers.go) names each background worker, but only
11// serve's explicit RunClaimWorker list starts one. A worker registered and
12// never started passes every console test and does nothing in production.
13func TestEveryRegisteredClaimWorkerIsStarted(t *testing.T) {
14 reg, err := os.ReadFile("../../internal/console/claim_workers.go")
15 if err != nil {
16 t.Fatal(err)
17 }
18 main, err := os.ReadFile("main.go")
19 if err != nil {
20 t.Fatal(err)
21 }
22 registered := regexp.MustCompile(`(?m)^\t\t"([A-Za-z]+)":\s+s\.`).FindAllSubmatch(reg, -1)
23 if len(registered) < 10 {
24 t.Fatalf("found only %d registered workers; the pattern no longer matches claim_workers.go", len(registered))
25 }
26 started := map[string]bool{}
27 for _, m := range regexp.MustCompile(`RunClaimWorker\(context\.Background\(\), "([A-Za-z]+)"\)`).FindAllSubmatch(main, -1) {
28 started[string(m[1])] = true
29 }
30 for _, m := range registered {
31 if name := string(m[1]); !started[name] {
32 t.Errorf("claim worker %s is registered but serve never starts it", name)
33 }
34 }
35}
36