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

Function TestEditMessageRejectsNonUserMessage

coderd/x/chatd/chatd_test.go:3377–3415  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3375}
3376
3377func TestEditMessageRejectsNonUserMessage(t *testing.T) {
3378 t.Parallel()
3379
3380 db, ps := dbtestutil.NewDB(t)
3381 replica := newTestServer(t, db, ps, uuid.New())
3382
3383 ctx := testutil.Context(t, testutil.WaitLong)
3384 user, org, model := seedChatDependencies(t, db)
3385
3386 chat, err := replica.CreateChat(ctx, chatd.CreateOptions{
3387 OrganizationID: org.ID,
3388 OwnerID: user.ID,
3389 Title: "non-user-edited-message",
3390 ModelConfigID: model.ID,
3391 InitialUserContent: []codersdk.ChatMessagePart{codersdk.ChatMessageText("hello")},
3392 })
3393 require.NoError(t, err)
3394
3395 assistantContent, err := chatprompt.MarshalParts([]codersdk.ChatMessagePart{
3396 codersdk.ChatMessageText("assistant"),
3397 })
3398 require.NoError(t, err)
3399
3400 assistantMessage := dbgen.ChatMessage(t, db, database.ChatMessage{
3401 ChatID: chat.ID,
3402 ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
3403 Role: database.ChatMessageRoleAssistant,
3404 ContentVersion: chatprompt.CurrentContentVersion,
3405 Content: assistantContent,
3406 })
3407
3408 _, err = replica.EditMessage(ctx, chatd.EditMessageOptions{
3409 ChatID: chat.ID,
3410 EditedMessageID: assistantMessage.ID,
3411 Content: []codersdk.ChatMessagePart{codersdk.ChatMessageText("edited")},
3412 })
3413 require.Error(t, err)
3414 require.True(t, errors.Is(err, chatd.ErrEditedMessageNotUser))
3415}
3416
3417// TestEditMessageDebugCleanupDeletesPreEditRuns verifies that
3418// EditMessage schedules the chat debug cleanup goroutine when debug

Callers

nothing calls this directly

Calls 12

NewDBFunction · 0.92
ContextFunction · 0.92
ChatMessageTextFunction · 0.92
MarshalPartsFunction · 0.92
ChatMessageFunction · 0.92
EditMessageMethod · 0.80
newTestServerFunction · 0.70
seedChatDependenciesFunction · 0.70
NewMethod · 0.65
CreateChatMethod · 0.65
ErrorMethod · 0.45
IsMethod · 0.45

Tested by

no test coverage detected