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:
Cian Johnston
2026-05-22 12:40:45 +01:00
committed by GitHub
parent ef6ee2af68
commit e5293c81f9
+19 -6
View File
@@ -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) {