mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
fix(coderd/x/chatd): seed afterMessageID test directly (#25665)
This fixes the flaky `TestSubscribeAfterMessageID` by seeding its chat and messages directly, so the test no longer creates pending work that a chat worker can pick up. The assertion now covers only the `afterMessageID` subscription behavior, independent of chat processing lifecycle timing. Closes DEVEX-326 Closes https://github.com/coder/internal/issues/1489
This commit is contained in:
@@ -4782,18 +4782,30 @@ func TestSubscribeAfterMessageID(t *testing.T) {
|
|||||||
ctx := testutil.Context(t, testutil.WaitLong)
|
ctx := testutil.Context(t, testutil.WaitLong)
|
||||||
user, org, model := seedChatDependencies(t, db)
|
user, org, model := seedChatDependencies(t, db)
|
||||||
|
|
||||||
// Create a chat. This inserts one initial "user" message.
|
chat := dbgen.Chat(t, db, database.Chat{
|
||||||
chat, err := replica.CreateChat(ctx, chatd.CreateOptions{
|
OrganizationID: org.ID,
|
||||||
OrganizationID: org.ID,
|
OwnerID: user.ID,
|
||||||
OwnerID: user.ID,
|
LastModelConfigID: model.ID,
|
||||||
Title: "after-id-test",
|
Title: "after-id-test",
|
||||||
ModelConfigID: model.ID,
|
Status: database.ChatStatusWaiting,
|
||||||
InitialUserContent: []codersdk.ChatMessagePart{codersdk.ChatMessageText("first")},
|
})
|
||||||
|
|
||||||
|
// Seed all messages directly so this subscription test is independent
|
||||||
|
// of chat processing lifecycle behavior.
|
||||||
|
firstContent, err := chatprompt.MarshalParts([]codersdk.ChatMessagePart{
|
||||||
|
codersdk.ChatMessageText("first"),
|
||||||
})
|
})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Insert two more messages so we have three total visible
|
_ = dbgen.ChatMessage(t, db, database.ChatMessage{
|
||||||
// messages (the initial user message plus these two).
|
ChatID: chat.ID,
|
||||||
|
CreatedBy: uuid.NullUUID{UUID: user.ID, Valid: true},
|
||||||
|
ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
|
||||||
|
Role: database.ChatMessageRoleUser,
|
||||||
|
ContentVersion: chatprompt.CurrentContentVersion,
|
||||||
|
Content: firstContent,
|
||||||
|
})
|
||||||
|
|
||||||
secondContent, err := chatprompt.MarshalParts([]codersdk.ChatMessagePart{
|
secondContent, err := chatprompt.MarshalParts([]codersdk.ChatMessagePart{
|
||||||
codersdk.ChatMessageText("second"),
|
codersdk.ChatMessageText("second"),
|
||||||
})
|
})
|
||||||
@@ -4814,6 +4826,7 @@ func TestSubscribeAfterMessageID(t *testing.T) {
|
|||||||
|
|
||||||
_ = dbgen.ChatMessage(t, db, database.ChatMessage{
|
_ = dbgen.ChatMessage(t, db, database.ChatMessage{
|
||||||
ChatID: chat.ID,
|
ChatID: chat.ID,
|
||||||
|
CreatedBy: uuid.NullUUID{UUID: user.ID, Valid: true},
|
||||||
ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
|
ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
|
||||||
Role: database.ChatMessageRoleUser,
|
Role: database.ChatMessageRoleUser,
|
||||||
ContentVersion: chatprompt.CurrentContentVersion,
|
ContentVersion: chatprompt.CurrentContentVersion,
|
||||||
|
|||||||
Reference in New Issue
Block a user