agent-orchestrator/backend/internal/adapters/reviewer/registry_test.go

45 lines
1.2 KiB
Go

package reviewer
import (
"testing"
"github.com/aoagents/agent-orchestrator/backend/internal/domain"
)
// TestRegistryMatchesDomainVocabulary enforces that the shipped reviewer
// adapters and domain.AllReviewerHarnesses stay in sync: every registered
// adapter is a known reviewer harness, and every known harness has an adapter.
func TestRegistryMatchesDomainVocabulary(t *testing.T) {
registered := map[domain.ReviewerHarness]bool{}
for _, a := range Constructors() {
h := a.Harness()
if !h.IsKnown() {
t.Errorf("adapter harness %q is not in domain.AllReviewerHarnesses", h)
}
if registered[h] {
t.Errorf("reviewer harness %q registered twice", h)
}
registered[h] = true
}
for _, h := range domain.AllReviewerHarnesses {
if !registered[h] {
t.Errorf("reviewer harness %q has no registered adapter", h)
}
}
}
func TestNewResolverResolvesShippedReviewers(t *testing.T) {
resolver, err := NewResolver()
if err != nil {
t.Fatalf("NewResolver: %v", err)
}
for _, h := range domain.AllReviewerHarnesses {
if _, ok := resolver.Reviewer(h); !ok {
t.Errorf("resolver missing reviewer %q", h)
}
}
if _, ok := resolver.Reviewer("nope"); ok {
t.Error("resolver returned an adapter for an unknown harness")
}
}