(t *testing.T)
| 6644 | } |
| 6645 | |
| 6646 | func TestSubsequentSendWithoutOverrideUsesPersistedModel(t *testing.T) { |
| 6647 | t.Parallel() |
| 6648 | |
| 6649 | ctx := testutil.Context(t, testutil.WaitLong) |
| 6650 | client, db := newChatClientWithDatabase(t) |
| 6651 | user := coderdtest.CreateFirstUser(t, client.Client) |
| 6652 | _ = createChatModelConfig(t, client) |
| 6653 | modelConfigB := createAdditionalChatModelConfig(t, client, coderdtest.TestChatProviderOpenAICompat, "gpt-4o-mini-persisted-"+uuid.NewString()) |
| 6654 | |
| 6655 | chat := dbgen.Chat(t, db, database.Chat{ |
| 6656 | OrganizationID: user.OrganizationID, |
| 6657 | OwnerID: user.UserID, |
| 6658 | LastModelConfigID: modelConfigB.ID, |
| 6659 | Title: "subsequent send uses persisted model", |
| 6660 | }) |
| 6661 | |
| 6662 | resp, err := client.CreateChatMessage(ctx, chat.ID, codersdk.CreateChatMessageRequest{ |
| 6663 | Content: []codersdk.ChatInputPart{{ |
| 6664 | Type: codersdk.ChatInputPartTypeText, |
| 6665 | Text: "reuse the persisted model", |
| 6666 | }}, |
| 6667 | }) |
| 6668 | require.NoError(t, err) |
| 6669 | require.False(t, resp.Queued) |
| 6670 | require.NotNil(t, resp.Message) |
| 6671 | require.NotNil(t, resp.Message.ModelConfigID) |
| 6672 | require.Equal(t, modelConfigB.ID, *resp.Message.ModelConfigID) |
| 6673 | |
| 6674 | messages, err := db.GetChatMessagesByChatID(dbauthz.AsSystemRestricted(ctx), database.GetChatMessagesByChatIDParams{ |
| 6675 | ChatID: chat.ID, |
| 6676 | AfterID: 0, |
| 6677 | }) |
| 6678 | require.NoError(t, err) |
| 6679 | // The chat daemon may insert an assistant response before this runs. |
| 6680 | userMsg := findUserMessage(t, messages) |
| 6681 | require.True(t, userMsg.ModelConfigID.Valid) |
| 6682 | require.Equal(t, modelConfigB.ID, userMsg.ModelConfigID.UUID) |
| 6683 | } |
| 6684 | |
| 6685 | func TestWatchChatsStatusChangeCarriesUpdatedLastModelConfigID(t *testing.T) { |
| 6686 | t.Parallel() |
nothing calls this directly
no test coverage detected