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

Function TestListChats

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

Source from the content-addressed store, hash-verified

902}
903
904func TestListChats(t *testing.T) {
905 t.Parallel()
906
907 t.Run("Success", func(t *testing.T) {
908 t.Parallel()
909
910 ctx := testutil.Context(t, testutil.WaitLong)
911 client, db := newChatClientWithDatabase(t)
912 firstUser := coderdtest.CreateFirstUser(t, client.Client)
913 modelConfig := createChatModelConfig(t, client)
914
915 firstChatA, err := client.CreateChat(ctx, codersdk.CreateChatRequest{
916 OrganizationID: firstUser.OrganizationID,
917 Content: []codersdk.ChatInputPart{
918 {
919 Type: codersdk.ChatInputPartTypeText,
920 Text: "first owner chat",
921 },
922 },
923 })
924 require.NoError(t, err)
925
926 firstChatB, err := client.CreateChat(ctx, codersdk.CreateChatRequest{
927 OrganizationID: firstUser.OrganizationID,
928 Content: []codersdk.ChatInputPart{
929 {
930 Type: codersdk.ChatInputPartTypeText,
931 Text: "second owner chat",
932 },
933 },
934 })
935 require.NoError(t, err)
936
937 memberClientRaw, member := coderdtest.CreateAnotherUser(t, client.Client, firstUser.OrganizationID, rbac.ScopedRoleAgentsAccess(firstUser.OrganizationID))
938 memberClient := codersdk.NewExperimentalClient(memberClientRaw)
939 memberDBChat := dbgen.Chat(t, db, database.Chat{
940 OrganizationID: firstUser.OrganizationID,
941 OwnerID: member.ID,
942 LastModelConfigID: modelConfig.ID,
943 Title: "member chat only",
944 })
945
946 chats, err := client.ListChats(ctx, nil)
947 require.NoError(t, err)
948 require.Len(t, chats, 2)
949
950 chatIndexes := make(map[uuid.UUID]int, len(chats))
951 chatsByID := make(map[uuid.UUID]codersdk.Chat, len(chats))
952 for i, chat := range chats {
953 chatIndexes[chat.ID] = i
954 chatsByID[chat.ID] = chat
955
956 require.Equal(t, firstUser.UserID, chat.OwnerID)
957 require.Equal(t, modelConfig.ID, chat.LastModelConfigID)
958 // The chat may have been picked up by the background
959 // processor (via signalWake) before we list, so
960 // accept any active status.
961 require.Contains(t, []codersdk.ChatStatus{

Callers

nothing calls this directly

Calls 15

ListChatsMethod · 0.95
UpdateChatMethod · 0.95
ContextFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
ScopedRoleAgentsAccessFunction · 0.92
NewExperimentalClientFunction · 0.92
ChatFunction · 0.92
RefFunction · 0.92
NewFunction · 0.92
AsSystemRestrictedFunction · 0.92

Tested by

no test coverage detected