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

Function TestAdvisorRunLimitReached

coderd/x/chatd/chatadvisor/runner_test.go:213–246  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

211}
212
213func TestAdvisorRunLimitReached(t *testing.T) {
214 t.Parallel()
215
216 var calls int
217 runtime, err := chatadvisor.NewRuntime(chatadvisor.RuntimeConfig{
218 Model: &chattest.FakeModel{
219 ProviderName: "test-provider",
220 ModelName: "test-model",
221 StreamFn: func(_ context.Context, _ fantasy.Call) (fantasy.StreamResponse, error) {
222 calls++
223 return streamFromParts([]fantasy.StreamPart{
224 {Type: fantasy.StreamPartTypeTextStart, ID: "text-1"},
225 {Type: fantasy.StreamPartTypeTextDelta, ID: "text-1", Delta: "first answer"},
226 {Type: fantasy.StreamPartTypeTextEnd, ID: "text-1"},
227 {Type: fantasy.StreamPartTypeFinish, FinishReason: fantasy.FinishReasonStop},
228 }), nil
229 },
230 },
231 MaxUsesPerRun: 1,
232 MaxOutputTokens: 64,
233 })
234 require.NoError(t, err)
235
236 first, err := runtime.RunAdvisor(t.Context(), "first?", nil, nil)
237 require.NoError(t, err)
238 require.Equal(t, chatadvisor.ResultTypeAdvice, first.Type)
239 require.Equal(t, 0, first.RemainingUses)
240
241 second, err := runtime.RunAdvisor(t.Context(), "second?", nil, nil)
242 require.NoError(t, err)
243 require.Equal(t, chatadvisor.ResultTypeLimitReached, second.Type)
244 require.Equal(t, 0, second.RemainingUses)
245 require.Equal(t, 1, calls)
246}
247
248func TestAdvisorRunError(t *testing.T) {
249 t.Parallel()

Callers

nothing calls this directly

Calls 5

RunAdvisorMethod · 0.95
NewRuntimeFunction · 0.92
streamFromPartsFunction · 0.70
ContextMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected