MCPcopy Create free account
hub / github.com/github/gh-aw / TestEngineRegistry_Register

Function TestEngineRegistry_Register

pkg/workflow/agentic_engine_test.go:84–120  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

82}
83
84func TestEngineRegistry_Register(t *testing.T) {
85 t.Run("custom engine can be registered and retrieved", func(t *testing.T) {
86 // Use direct struct initialization to start with an empty registry so
87 // Register is the sole mechanism populating it in this test.
88 registry := &EngineRegistry{engines: make(map[string]CodingAgentEngine)}
89 customEngine := NewCopilotEngine()
90
91 err := registry.Register(customEngine)
92 require.NoError(t, err, "registering a valid engine should not return an error")
93
94 engine, err := registry.GetEngine("copilot")
95 require.NoError(t, err, "registered custom engine should be retrievable")
96 assert.Equal(t, "copilot", engine.GetID(), "retrieved engine ID should match registered engine")
97 })
98
99 t.Run("registering an engine makes IsValidEngine return true", func(t *testing.T) {
100 // Use direct struct initialization to start with an empty registry so
101 // IsValidEngine behaviour before and after Register is clearly observable.
102 registry := &EngineRegistry{engines: make(map[string]CodingAgentEngine)}
103 assert.False(t, registry.IsValidEngine("claude"), "engine should not be valid before registration")
104
105 err := registry.Register(NewClaudeEngine())
106 require.NoError(t, err, "registering a valid engine should not return an error")
107 assert.True(t, registry.IsValidEngine("claude"), "engine should be valid after registration")
108 })
109
110 t.Run("registering an engine with negative dedicatedLLMGatewayPort returns error", func(t *testing.T) {
111 registry := &EngineRegistry{engines: make(map[string]CodingAgentEngine)}
112
113 // negativePortEngine wraps ClaudeEngine and returns -1 from
114 // getDedicatedLLMGatewayPort, triggering the validation path in Register.
115 err := registry.Register(&negativePortEngine{CodingAgentEngine: NewClaudeEngine()})
116 require.Error(t, err, "registering an engine with dedicatedLLMGatewayPort = -1 should return an error")
117 assert.Contains(t, err.Error(), "dedicatedLLMGatewayPort must be >= 0", "error message should describe the constraint")
118 assert.False(t, registry.IsValidEngine("claude"), "invalid engine should not be registered on error")
119 })
120}
121
122// negativePortEngine wraps a CodingAgentEngine and always reports port -1 so
123// that tests can exercise the negative-port validation path in Register without

Callers

nothing calls this directly

Calls 8

RegisterMethod · 0.95
GetEngineMethod · 0.95
IsValidEngineMethod · 0.95
NewCopilotEngineFunction · 0.85
NewClaudeEngineFunction · 0.85
GetIDMethod · 0.65
RunMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected