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

Function TestInterruptChat

coderd/exp_chats_test.go:8199–8256  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

8197}
8198
8199func TestInterruptChat(t *testing.T) {
8200 t.Parallel()
8201
8202 t.Run("Success", func(t *testing.T) {
8203 t.Parallel()
8204
8205 ctx := testutil.Context(t, testutil.WaitLong)
8206 client, db := newChatClientWithDatabase(t)
8207 user := coderdtest.CreateFirstUser(t, client.Client)
8208 modelConfig := createChatModelConfig(t, client)
8209
8210 chat := dbgen.Chat(t, db, database.Chat{
8211 OrganizationID: user.OrganizationID,
8212 OwnerID: user.UserID,
8213 LastModelConfigID: modelConfig.ID,
8214 Title: "interrupt route test",
8215 })
8216
8217 runningWorkerID := uuid.New()
8218 var err error
8219 chat, err = db.UpdateChatStatus(dbauthz.AsSystemRestricted(ctx), database.UpdateChatStatusParams{
8220 ID: chat.ID,
8221 Status: database.ChatStatusRunning,
8222 WorkerID: uuid.NullUUID{UUID: runningWorkerID, Valid: true},
8223 StartedAt: sql.NullTime{Time: time.Now(), Valid: true},
8224 HeartbeatAt: sql.NullTime{Time: time.Now(), Valid: true},
8225 })
8226
8227 require.NoError(t, err)
8228 require.Equal(t, database.ChatStatusRunning, chat.Status)
8229 require.True(t, chat.WorkerID.Valid)
8230 require.True(t, chat.StartedAt.Valid)
8231 require.True(t, chat.HeartbeatAt.Valid)
8232
8233 interrupted, err := client.InterruptChat(ctx, chat.ID)
8234 require.NoError(t, err)
8235 require.Equal(t, chat.ID, interrupted.ID)
8236 require.Equal(t, codersdk.ChatStatusWaiting, interrupted.Status)
8237
8238 persisted, err := db.GetChatByID(dbauthz.AsSystemRestricted(ctx), chat.ID)
8239 require.NoError(t, err)
8240 require.Equal(t, database.ChatStatusWaiting, persisted.Status)
8241 require.False(t, persisted.WorkerID.Valid)
8242 require.False(t, persisted.StartedAt.Valid)
8243 require.False(t, persisted.HeartbeatAt.Valid)
8244 })
8245
8246 t.Run("ChatNotFound", func(t *testing.T) {
8247 t.Parallel()
8248
8249 ctx := testutil.Context(t, testutil.WaitLong)
8250 client := newChatClient(t)
8251 _ = coderdtest.CreateFirstUser(t, client.Client)
8252
8253 _, err := client.InterruptChat(ctx, uuid.New())
8254 requireSDKError(t, err, http.StatusNotFound)
8255 })
8256}

Callers

nothing calls this directly

Calls 14

ContextFunction · 0.92
CreateFirstUserFunction · 0.92
ChatFunction · 0.92
AsSystemRestrictedFunction · 0.92
requireSDKErrorFunction · 0.85
createChatModelConfigFunction · 0.70
newChatClientFunction · 0.70
RunMethod · 0.65
NewMethod · 0.65
UpdateChatStatusMethod · 0.65
GetChatByIDMethod · 0.65

Tested by

no test coverage detected