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

Function TestChatMessageWithFileReferences

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

Source from the content-addressed store, hash-verified

6786}
6787
6788func TestChatMessageWithFileReferences(t *testing.T) {
6789 t.Parallel()
6790
6791 // createChat is a helper that creates a chat so we can post messages to it.
6792 createChatForTest := func(t *testing.T, client *codersdk.ExperimentalClient, orgID uuid.UUID) codersdk.Chat {
6793 t.Helper()
6794 ctx := testutil.Context(t, testutil.WaitLong)
6795 chat, err := client.CreateChat(ctx, codersdk.CreateChatRequest{
6796 OrganizationID: orgID,
6797 Content: []codersdk.ChatInputPart{{
6798 Type: codersdk.ChatInputPartTypeText,
6799 Text: "initial message",
6800 }},
6801 })
6802 require.NoError(t, err)
6803 return chat
6804 }
6805
6806 t.Run("FileReferenceOnly", func(t *testing.T) {
6807 t.Parallel()
6808
6809 ctx := testutil.Context(t, testutil.WaitLong)
6810 client := newChatClient(t)
6811 firstUser := coderdtest.CreateFirstUser(t, client.Client)
6812 _ = createChatModelConfig(t, client)
6813 chat := createChatForTest(t, client, firstUser.OrganizationID)
6814
6815 created, err := client.CreateChatMessage(ctx, chat.ID, codersdk.CreateChatMessageRequest{
6816 Content: []codersdk.ChatInputPart{{
6817 Type: codersdk.ChatInputPartTypeFileReference,
6818 FileName: "main.go",
6819 StartLine: 10,
6820 EndLine: 15,
6821 Content: "func broken() {}",
6822 }},
6823 })
6824 require.NoError(t, err)
6825
6826 // File-reference parts are stored as structured parts.
6827 checkFileRef := func(part codersdk.ChatMessagePart) bool {
6828 return part.Type == codersdk.ChatMessagePartTypeFileReference &&
6829 part.FileName == "main.go" &&
6830 part.StartLine == 10 &&
6831 part.EndLine == 15 &&
6832 part.Content == "func broken() {}"
6833 }
6834
6835 var found bool
6836 require.Eventually(t, func() bool {
6837 messagesResult, getErr := client.GetChatMessages(ctx, chat.ID, nil)
6838 if getErr != nil {
6839 return false
6840 }
6841 for _, message := range messagesResult.Messages {
6842 if message.Role != codersdk.ChatMessageRoleUser {
6843 continue
6844 }
6845 for _, part := range message.Content {

Callers

nothing calls this directly

Calls 12

ContextFunction · 0.92
CreateFirstUserFunction · 0.92
requireSDKErrorFunction · 0.85
GetChatMessagesMethod · 0.80
NotEmptyMethod · 0.80
newChatClientFunction · 0.70
createChatModelConfigFunction · 0.70
HelperMethod · 0.65
CreateChatMethod · 0.65
RunMethod · 0.65
CreateChatMessageMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected