mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
fix(coderd): fix flaky TestSendMessageWithModelOverrideUpdatesLastModelConfigID (#25603)
Fixes: ENG-2719 Fixes the flake in `TestSendMessageWithModelOverrideUpdatesLastModelConfigID` (and the same pattern in `TestSubsequentSendWithoutOverrideUsesPersistedModel`). > Generated with [Coder Agents](https://coder.com/agents)
This commit is contained in:
@@ -128,6 +128,17 @@ func newChatClientWithAPIAndDatabase(t testing.TB, overrides ...func(*coderdtest
|
||||
return codersdk.NewExperimentalClient(client), api.Database, api
|
||||
}
|
||||
|
||||
// findUserMessage returns the first user-role message from a slice of chat
|
||||
// messages, failing the test if none is found.
|
||||
func findUserMessage(t testing.TB, messages []database.ChatMessage) database.ChatMessage {
|
||||
t.Helper()
|
||||
idx := slices.IndexFunc(messages, func(m database.ChatMessage) bool {
|
||||
return m.Role == database.ChatMessageRoleUser
|
||||
})
|
||||
require.NotEqual(t, -1, idx, "expected to find a user message")
|
||||
return messages[idx]
|
||||
}
|
||||
|
||||
type failNextChatSystemPromptStore struct {
|
||||
database.Store
|
||||
|
||||
@@ -6391,9 +6402,10 @@ func TestSendMessageWithModelOverrideUpdatesLastModelConfigID(t *testing.T) {
|
||||
AfterID: 0,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, messages, 1)
|
||||
require.True(t, messages[0].ModelConfigID.Valid)
|
||||
require.Equal(t, modelConfigB.ID, messages[0].ModelConfigID.UUID)
|
||||
// The chat daemon may insert an assistant response before this runs.
|
||||
userMsg := findUserMessage(t, messages)
|
||||
require.True(t, userMsg.ModelConfigID.Valid)
|
||||
require.Equal(t, modelConfigB.ID, userMsg.ModelConfigID.UUID)
|
||||
}
|
||||
|
||||
func TestSendMessageQueuesEffectiveModelConfigID(t *testing.T) {
|
||||
@@ -6532,9 +6544,10 @@ func TestSubsequentSendWithoutOverrideUsesPersistedModel(t *testing.T) {
|
||||
AfterID: 0,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, messages, 1)
|
||||
require.True(t, messages[0].ModelConfigID.Valid)
|
||||
require.Equal(t, modelConfigB.ID, messages[0].ModelConfigID.UUID)
|
||||
// The chat daemon may insert an assistant response before this runs.
|
||||
userMsg := findUserMessage(t, messages)
|
||||
require.True(t, userMsg.ModelConfigID.Valid)
|
||||
require.Equal(t, modelConfigB.ID, userMsg.ModelConfigID.UUID)
|
||||
}
|
||||
|
||||
func TestWatchChatsStatusChangeCarriesUpdatedLastModelConfigID(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user