MCPcopy Index your code
hub / github.com/coder/coder / TestEditMessageRejectsUnknownModelConfig

Function TestEditMessageRejectsUnknownModelConfig

coderd/x/chatd/chatd_test.go:9041–9087  ·  view source on GitHub ↗

TestEditMessageRejectsUnknownModelConfig verifies the edit handler returns ErrInvalidModelConfigID when the requested model does not exist, mirroring SendMessage's validation.

(t *testing.T)

Source from the content-addressed store, hash-verified

9039// returns ErrInvalidModelConfigID when the requested model does not
9040// exist, mirroring SendMessage's validation.
9041func TestEditMessageRejectsUnknownModelConfig(t *testing.T) {
9042 t.Parallel()
9043
9044 db, ps := dbtestutil.NewDB(t)
9045 replica := newTestServer(t, db, ps, uuid.New())
9046
9047 ctx := testutil.Context(t, testutil.WaitLong)
9048 user, org, modelA := seedChatDependencies(t, db)
9049
9050 chat, err := replica.CreateChat(ctx, chatd.CreateOptions{
9051 OwnerID: user.ID,
9052 OrganizationID: org.ID,
9053 Title: "edit-unknown-model",
9054 ModelConfigID: modelA.ID,
9055 InitialUserContent: []codersdk.ChatMessagePart{codersdk.ChatMessageText("original")},
9056 })
9057 require.NoError(t, err)
9058
9059 initial, err := db.GetChatMessagesByChatID(ctx, database.GetChatMessagesByChatIDParams{
9060 ChatID: chat.ID,
9061 AfterID: 0,
9062 })
9063 require.NoError(t, err)
9064 require.Len(t, initial, 1)
9065
9066 _, err = replica.EditMessage(ctx, chatd.EditMessageOptions{
9067 ChatID: chat.ID,
9068 EditedMessageID: initial[0].ID,
9069 Content: []codersdk.ChatMessagePart{codersdk.ChatMessageText("edited")},
9070 ModelConfigID: uuid.New(),
9071 })
9072 require.ErrorIs(t, err, chatd.ErrInvalidModelConfigID)
9073
9074 // The edit must roll back: the original message should still be
9075 // present and the chat's LastModelConfigID unchanged.
9076 stillThere, err := db.GetChatMessagesByChatID(ctx, database.GetChatMessagesByChatIDParams{
9077 ChatID: chat.ID,
9078 AfterID: 0,
9079 })
9080 require.NoError(t, err)
9081 require.Len(t, stillThere, 1)
9082 require.Equal(t, initial[0].ID, stillThere[0].ID)
9083
9084 storedChat, err := db.GetChatByID(ctx, chat.ID)
9085 require.NoError(t, err)
9086 require.Equal(t, modelA.ID, storedChat.LastModelConfigID)
9087}
9088
9089func TestPromoteQueuedRejectsArchivedChat(t *testing.T) {
9090 t.Parallel()

Callers

nothing calls this directly

Calls 12

NewDBFunction · 0.92
ContextFunction · 0.92
ChatMessageTextFunction · 0.92
EditMessageMethod · 0.80
newTestServerFunction · 0.70
seedChatDependenciesFunction · 0.70
NewMethod · 0.65
CreateChatMethod · 0.65
GetChatByIDMethod · 0.65
LenMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected