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

Function TestPatchChatMessage

coderd/exp_chats_test.go:7552–8121  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

7550}
7551
7552func TestPatchChatMessage(t *testing.T) {
7553 t.Parallel()
7554
7555 t.Run("Success", func(t *testing.T) {
7556 t.Parallel()
7557
7558 ctx := testutil.Context(t, testutil.WaitLong)
7559 client := newChatClient(t)
7560 firstUser := coderdtest.CreateFirstUser(t, client.Client)
7561 _ = createChatModelConfig(t, client)
7562
7563 chat, err := client.CreateChat(ctx, codersdk.CreateChatRequest{
7564 OrganizationID: firstUser.OrganizationID,
7565 Content: []codersdk.ChatInputPart{
7566 {
7567 Type: codersdk.ChatInputPartTypeText,
7568 Text: "hello before edit",
7569 },
7570 },
7571 })
7572 require.NoError(t, err)
7573
7574 messagesResult, err := client.GetChatMessages(ctx, chat.ID, nil)
7575 require.NoError(t, err)
7576
7577 var userMessageID int64
7578 for _, message := range messagesResult.Messages {
7579 if message.Role == codersdk.ChatMessageRoleUser {
7580 userMessageID = message.ID
7581 break
7582 }
7583 }
7584 require.NotZero(t, userMessageID)
7585
7586 edited, err := client.EditChatMessage(ctx, chat.ID, userMessageID, codersdk.EditChatMessageRequest{
7587 Content: []codersdk.ChatInputPart{
7588 {
7589 Type: codersdk.ChatInputPartTypeText,
7590 Text: "hello after edit",
7591 },
7592 },
7593 })
7594 require.NoError(t, err)
7595 // The edited message is soft-deleted and a new one is inserted,
7596 // so the returned ID will differ from the original.
7597 require.NotEqual(t, userMessageID, edited.Message.ID)
7598 require.Equal(t, codersdk.ChatMessageRoleUser, edited.Message.Role)
7599
7600 foundEditedText := false
7601 for _, part := range edited.Message.Content {
7602 if part.Type == codersdk.ChatMessagePartTypeText && part.Text == "hello after edit" {
7603 foundEditedText = true
7604 }
7605 }
7606 require.True(t, foundEditedText)
7607
7608 messagesResult, err = client.GetChatMessages(ctx, chat.ID, nil)
7609 require.NoError(t, err)

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
CreateFirstUserFunction · 0.92
ReadBodyAsErrorFunction · 0.92
RefFunction · 0.92
EventuallyFunction · 0.92
requireSDKErrorFunction · 0.85
GetChatMessagesMethod · 0.80

Tested by

no test coverage detected