(t *testing.T)
| 7550 | } |
| 7551 | |
| 7552 | func 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) |
nothing calls this directly
no test coverage detected