Make composition and boundary tests extension-friendly

This commit is contained in:
2026-07-18 23:50:24 +00:00
parent d88bcb6070
commit 4f96abf42c
9 changed files with 148 additions and 102 deletions

View File

@@ -1,7 +1,6 @@
package register
import (
"reflect"
"strings"
"testing"
@@ -13,8 +12,22 @@ func TestRegisterAddsSeriatimFamily(t *testing.T) {
if err := Register(registries, nil); err != nil {
t.Fatalf("Register() error = %v, want nil", err)
}
if got, want := registries.Inputs.RegisteredKeys(), []string{"seriatim"}; !reflect.DeepEqual(got, want) {
t.Fatalf("input keys = %#v, want %#v", got, want)
assertContainsKeys(t, "inputs", registries.Inputs.RegisteredKeys(), []string{"seriatim"})
if adapter, err := registries.Inputs.Build("seriatim"); err != nil || adapter.Key() != "seriatim" {
t.Fatalf("build seriatim input = %v, %v; want seriatim implementation", adapter, err)
}
}
func assertContainsKeys(t *testing.T, name string, got, want []string) {
t.Helper()
seen := make(map[string]struct{}, len(got))
for _, key := range got {
seen[key] = struct{}{}
}
for _, key := range want {
if _, ok := seen[key]; !ok {
t.Fatalf("%s keys = %#v, want required key %q", name, got, key)
}
}
}