MCPcopy Index your code
hub / github.com/coder/coder / newBridgeTestServer

Function newBridgeTestServer

aibridge/internal/integrationtest/setupbridge.go:134–194  ·  view source on GitHub ↗

newBridgeTestServer creates a fully configured test server running a RequestBridge with sensible defaults: - All standard providers (unless withProvider / withCustomProvider) - NoopMCPManager (unless withMCP) - slogtest debug logger - defaultTracer (unless withTracer) - defaultActorID (unless withAc

(
	ctx context.Context,
	t *testing.T,
	upstreamURL string,
	opts ...bridgeOption,
)

Source from the content-addressed store, hash-verified

132// - defaultTracer (unless withTracer)
133// - defaultActorID (unless withActor)
134func newBridgeTestServer(
135 ctx context.Context,
136 t *testing.T,
137 upstreamURL string,
138 opts ...bridgeOption,
139) *bridgeTestServer {
140 t.Helper()
141
142 cfg := &bridgeConfig{
143 userID: defaultActorID,
144 }
145 for _, o := range opts {
146 o(cfg)
147 }
148 if cfg.tracer == nil {
149 cfg.tracer = defaultTracer
150 }
151 cfg.logger = newLogger(t)
152 if cfg.mcpProxy == nil {
153 cfg.mcpProxy = newNoopMCPManager()
154 }
155
156 // Resolve providers: use explicit builders when provided, otherwise
157 // create default providers for every supported type.
158 var providers []aibridge.Provider
159 if len(cfg.providerBuilders) > 0 {
160 for _, b := range cfg.providerBuilders {
161 providers = append(providers, b(upstreamURL))
162 }
163 } else {
164 providers = []aibridge.Provider{
165 newDefaultProvider(config.ProviderAnthropic, upstreamURL),
166 newDefaultProvider(config.ProviderOpenAI, upstreamURL),
167 }
168 }
169
170 mockRec := &testutil.MockRecorder{}
171 rec := aibridge.NewRecorder(cfg.logger, cfg.tracer, func() (aibridge.Recorder, error) {
172 return mockRec, nil
173 })
174
175 bridge, err := aibridge.NewRequestBridge(
176 ctx, providers, rec, cfg.mcpProxy,
177 cfg.logger, cfg.metrics, cfg.tracer,
178 )
179 require.NoError(t, err)
180
181 actorID, md := cfg.userID, cfg.metadata
182 srv := httptest.NewUnstartedServer(bridge)
183 srv.Config.BaseContext = func(_ net.Listener) context.Context {
184 return aibcontext.AsActor(ctx, actorID, md)
185 }
186 srv.Start()
187 t.Cleanup(srv.Close)
188
189 return &bridgeTestServer{
190 Server: srv,
191 Recorder: mockRec,

Calls 8

NewRecorderFunction · 0.92
NewRequestBridgeFunction · 0.92
newLoggerFunction · 0.85
newNoopMCPManagerFunction · 0.85
newDefaultProviderFunction · 0.85
HelperMethod · 0.65
StartMethod · 0.65
CleanupMethod · 0.65