package main import ( "os" "regexp" "testing" ) // TestEveryRegisteredClaimWorkerIsStarted: registerClaimWorkers // (internal/console/claim_workers.go) names each background worker, but only // serve's explicit RunClaimWorker list starts one. A worker registered and // never started passes every console test and does nothing in production. func TestEveryRegisteredClaimWorkerIsStarted(t *testing.T) { reg, err := os.ReadFile("../../internal/console/claim_workers.go") if err != nil { t.Fatal(err) } main, err := os.ReadFile("main.go") if err != nil { t.Fatal(err) } registered := regexp.MustCompile(`(?m)^\t\t"([A-Za-z]+)":\s+s\.`).FindAllSubmatch(reg, -1) if len(registered) < 10 { t.Fatalf("found only %d registered workers; the pattern no longer matches claim_workers.go", len(registered)) } started := map[string]bool{} for _, m := range regexp.MustCompile(`RunClaimWorker\(context\.Background\(\), "([A-Za-z]+)"\)`).FindAllSubmatch(main, -1) { started[string(m[1])] = true } for _, m := range registered { if name := string(m[1]); !started[name] { t.Errorf("claim worker %s is registered but serve never starts it", name) } } }