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

Function TestChatDebugStep

coderd/database/db2sdk/db2sdk_test.go:269–333  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

267}
268
269func TestChatDebugStep(t *testing.T) {
270 t.Parallel()
271
272 startedAt := time.Now().UTC().Round(time.Second)
273 finishedAt := startedAt.Add(2 * time.Second)
274 attempts := json.RawMessage(`[
275 {
276 "attempt_number": 1,
277 "status": "completed",
278 "raw_request": {"url": "https://example.com"},
279 "raw_response": {"status": "200"},
280 "duration_ms": 123,
281 "started_at": "2026-03-01T10:00:01Z",
282 "finished_at": "2026-03-01T10:00:02Z"
283 }
284 ]`)
285 step := database.ChatDebugStep{
286 ID: uuid.New(),
287 RunID: uuid.New(),
288 ChatID: uuid.New(),
289 StepNumber: 1,
290 Operation: "stream",
291 Status: "completed",
292 NormalizedRequest: json.RawMessage(`{"messages":[]}`),
293 Attempts: attempts,
294 Metadata: json.RawMessage(`{"provider":"openai"}`),
295 StartedAt: startedAt,
296 UpdatedAt: finishedAt,
297 FinishedAt: sql.NullTime{Time: finishedAt, Valid: true},
298 }
299
300 sdk := db2sdk.ChatDebugStep(step)
301
302 // Verify all scalar fields are mapped correctly.
303 require.Equal(t, step.ID, sdk.ID)
304 require.Equal(t, step.RunID, sdk.RunID)
305 require.Equal(t, step.ChatID, sdk.ChatID)
306 require.Equal(t, step.StepNumber, sdk.StepNumber)
307 require.Equal(t, codersdk.ChatDebugStepOperationStream, sdk.Operation)
308 require.Equal(t, codersdk.ChatDebugStatusCompleted, sdk.Status)
309 require.Equal(t, startedAt, sdk.StartedAt)
310 require.Equal(t, finishedAt, sdk.UpdatedAt)
311 require.Equal(t, &finishedAt, sdk.FinishedAt)
312
313 // Verify JSON object fields are deserialized.
314 require.NotNil(t, sdk.NormalizedRequest)
315 require.Equal(t, map[string]any{"messages": []any{}}, sdk.NormalizedRequest)
316 require.NotNil(t, sdk.Metadata)
317 require.Equal(t, map[string]any{"provider": "openai"}, sdk.Metadata)
318
319 // Verify nullable fields are nil when the DB row has NULL values.
320 require.Nil(t, sdk.HistoryTipMessageID, "NULL HistoryTipMessageID should map to nil")
321 require.Nil(t, sdk.AssistantMessageID, "NULL AssistantMessageID should map to nil")
322 require.Nil(t, sdk.NormalizedResponse, "NULL NormalizedResponse should map to nil")
323 require.Nil(t, sdk.Usage, "NULL Usage should map to nil")
324 require.Nil(t, sdk.Error, "NULL Error should map to nil")
325
326 // Verify attempts are preserved with all fields.

Callers

nothing calls this directly

Calls 5

ChatDebugStepFunction · 0.92
AddMethod · 0.65
NewMethod · 0.65
EqualMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected