(t *testing.T)
| 8197 | } |
| 8198 | |
| 8199 | func 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 | } |
nothing calls this directly
no test coverage detected