TestEditMessagePreservesModelConfigByDefault verifies that omitting ModelConfigID on edit keeps the original message's model. This is the existing default for callers that only edit the text.
(t *testing.T)
| 8996 | // ModelConfigID on edit keeps the original message's model. This is the |
| 8997 | // existing default for callers that only edit the text. |
| 8998 | func TestEditMessagePreservesModelConfigByDefault(t *testing.T) { |
| 8999 | t.Parallel() |
| 9000 | |
| 9001 | db, ps := dbtestutil.NewDB(t) |
| 9002 | replica := newTestServer(t, db, ps, uuid.New()) |
| 9003 | |
| 9004 | ctx := testutil.Context(t, testutil.WaitLong) |
| 9005 | user, org, modelA := seedChatDependencies(t, db) |
| 9006 | |
| 9007 | chat, err := replica.CreateChat(ctx, chatd.CreateOptions{ |
| 9008 | OwnerID: user.ID, |
| 9009 | OrganizationID: org.ID, |
| 9010 | Title: "edit-preserves-model", |
| 9011 | ModelConfigID: modelA.ID, |
| 9012 | InitialUserContent: []codersdk.ChatMessagePart{codersdk.ChatMessageText("original")}, |
| 9013 | }) |
| 9014 | require.NoError(t, err) |
| 9015 | |
| 9016 | initial, err := db.GetChatMessagesByChatID(ctx, database.GetChatMessagesByChatIDParams{ |
| 9017 | ChatID: chat.ID, |
| 9018 | AfterID: 0, |
| 9019 | }) |
| 9020 | require.NoError(t, err) |
| 9021 | require.Len(t, initial, 1) |
| 9022 | |
| 9023 | result, err := replica.EditMessage(ctx, chatd.EditMessageOptions{ |
| 9024 | ChatID: chat.ID, |
| 9025 | EditedMessageID: initial[0].ID, |
| 9026 | Content: []codersdk.ChatMessagePart{codersdk.ChatMessageText("edited")}, |
| 9027 | }) |
| 9028 | require.NoError(t, err) |
| 9029 | require.True(t, result.Message.ModelConfigID.Valid) |
| 9030 | require.Equal(t, modelA.ID, result.Message.ModelConfigID.UUID) |
| 9031 | |
| 9032 | storedChat, err := db.GetChatByID(ctx, chat.ID) |
| 9033 | require.NoError(t, err) |
| 9034 | require.Equal(t, modelA.ID, storedChat.LastModelConfigID, |
| 9035 | "edit without model override must not change last_model_config_id") |
| 9036 | } |
| 9037 | |
| 9038 | // TestEditMessageRejectsUnknownModelConfig verifies the edit handler |
| 9039 | // returns ErrInvalidModelConfigID when the requested model does not |
nothing calls this directly
no test coverage detected