45 lines
1.2 KiB
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")
|
|
}
|
|
}
|