28 lines
927 B
Go
28 lines
927 B
Go
package research_contracts_test
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestReflectionCandidateLeaseSQLIsDurableAndRecoverable(t *testing.T) {
|
|
checks := map[string][]string{
|
|
"../../database/migrations/032_reflection_candidate_leases.sql": {"claim_expires_at_unix_millis", "reflection_candidates_claimable_idx"},
|
|
"../../adapters/postgres/epistemics_repository.go": {"claim_expires_at_unix_millis", "FOR UPDATE SKIP LOCKED", "state='OPEN'", "state='RESOLVED'"},
|
|
"../../cmd/reflection-worker/main.go": {"RecoverReflectionClaims", "ClaimReflectionCandidate", "ResolveReflectionCandidate"},
|
|
}
|
|
for path, needles := range checks {
|
|
data, err := os.ReadFile(path)
|
|
if err != nil {
|
|
t.Fatalf("read %s: %v", path, err)
|
|
}
|
|
text := string(data)
|
|
for _, needle := range needles {
|
|
if !strings.Contains(text, needle) {
|
|
t.Fatalf("%s missing %q", path, needle)
|
|
}
|
|
}
|
|
}
|
|
}
|