package adapters_test import ( "testing" "go.uber.org/zap" "iop/apps/node/internal/adapters" iop "iop/proto/gen/iop" ) func TestBuildFromPayload_MockAlwaysPresent(t *testing.T) { reg, err := adapters.BuildFromPayload(&iop.NodeConfigPayload{}, zap.NewNop()) if err != nil { t.Fatalf("build from payload: %v", err) } if _, ok := reg.Get("mock"); !ok { t.Fatal("expected mock adapter to be registered") } if got := len(reg.All()); got != 1 { t.Fatalf("expected 1 adapter, got %d", got) } } func TestBuildFromPayload_OllamaEnabled(t *testing.T) { reg, err := adapters.BuildFromPayload(&iop.NodeConfigPayload{ Adapters: []*iop.AdapterConfig{ { Type: "ollama", Enabled: true, Config: &iop.AdapterConfig_Ollama{ Ollama: &iop.OllamaAdapterConfig{BaseUrl: "http://localhost:11434"}, }, }, }, }, zap.NewNop()) if err != nil { t.Fatalf("build from payload: %v", err) } if _, ok := reg.Get("mock"); !ok { t.Fatal("expected mock adapter to be registered") } if _, ok := reg.Get("ollama"); !ok { t.Fatal("expected ollama adapter to be registered") } } func TestBuildFromPayload_MultipleAdapters(t *testing.T) { reg, err := adapters.BuildFromPayload(&iop.NodeConfigPayload{ Adapters: []*iop.AdapterConfig{ {Type: "ollama", Enabled: true, Config: &iop.AdapterConfig_Ollama{Ollama: &iop.OllamaAdapterConfig{BaseUrl: "x"}}}, {Type: "vllm", Enabled: true, Config: &iop.AdapterConfig_Vllm{Vllm: &iop.VllmAdapterConfig{Endpoint: "y"}}}, {Type: "cli", Enabled: true, Config: &iop.AdapterConfig_Cli{Cli: &iop.CLIAdapterConfig{ Profiles: map[string]*iop.CLIProfileConfig{ "codex": {Command: "codex", Persistent: true, ResponseIdleTimeoutMs: 1500, StartupIdleTimeoutMs: 300}, }, }}}, }, }, zap.NewNop()) if err != nil { t.Fatalf("build from payload: %v", err) } for _, name := range []string{"mock", "ollama", "vllm", "cli"} { if _, ok := reg.Get(name); !ok { t.Fatalf("expected %s adapter to be registered", name) } } } func TestBuildFromPayload_UnknownType(t *testing.T) { _, err := adapters.BuildFromPayload(&iop.NodeConfigPayload{ Adapters: []*iop.AdapterConfig{ {Type: "unknown", Enabled: true}, }, }, zap.NewNop()) if err == nil { t.Fatal("expected unknown adapter type error") } }