(t *testing.T)
| 13636 | } |
| 13637 | |
| 13638 | func TestGetChatsByWorkspace(t *testing.T) { |
| 13639 | t.Parallel() |
| 13640 | |
| 13641 | client, db := newChatClientWithDatabase(t) |
| 13642 | user := coderdtest.CreateFirstUser(t, client.Client) |
| 13643 | modelConfig := createChatModelConfig(t, client) |
| 13644 | |
| 13645 | // Helper to create a workspace owned by the test user. |
| 13646 | newWorkspace := func() dbfake.WorkspaceBuildBuilder { |
| 13647 | return dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{ |
| 13648 | OrganizationID: user.OrganizationID, |
| 13649 | OwnerID: user.UserID, |
| 13650 | }).WithAgent() |
| 13651 | } |
| 13652 | |
| 13653 | // Helper to insert a chat linked to a workspace. |
| 13654 | insertChat := func(ctx context.Context, title string, workspaceID uuid.UUID) database.Chat { |
| 13655 | chat := dbgen.Chat(t, db, database.Chat{ |
| 13656 | OrganizationID: user.OrganizationID, |
| 13657 | OwnerID: user.UserID, |
| 13658 | LastModelConfigID: modelConfig.ID, |
| 13659 | Title: title, |
| 13660 | WorkspaceID: uuid.NullUUID{UUID: workspaceID, Valid: true}, |
| 13661 | }) |
| 13662 | return chat |
| 13663 | } |
| 13664 | |
| 13665 | t.Run("EmptyRequestReturnsEmptyMap", func(t *testing.T) { |
| 13666 | t.Parallel() |
| 13667 | ctx := testutil.Context(t, testutil.WaitLong) |
| 13668 | result, err := client.GetChatsByWorkspace(ctx, []uuid.UUID{}) |
| 13669 | require.NoError(t, err) |
| 13670 | require.Empty(t, result) |
| 13671 | }) |
| 13672 | |
| 13673 | t.Run("WorkspaceWithNoChatsOmitted", func(t *testing.T) { |
| 13674 | t.Parallel() |
| 13675 | ctx := testutil.Context(t, testutil.WaitLong) |
| 13676 | ws := newWorkspace().Do() |
| 13677 | |
| 13678 | result, err := client.GetChatsByWorkspace(ctx, []uuid.UUID{ws.Workspace.ID}) |
| 13679 | require.NoError(t, err) |
| 13680 | require.Empty(t, result) |
| 13681 | }) |
| 13682 | |
| 13683 | t.Run("ReturnsChatLinkedToWorkspace", func(t *testing.T) { |
| 13684 | t.Parallel() |
| 13685 | ctx := testutil.Context(t, testutil.WaitLong) |
| 13686 | ws := newWorkspace().Do() |
| 13687 | chat := insertChat(ctx, "workspace chat", ws.Workspace.ID) |
| 13688 | |
| 13689 | result, err := client.GetChatsByWorkspace(ctx, []uuid.UUID{ws.Workspace.ID}) |
| 13690 | require.NoError(t, err) |
| 13691 | require.Len(t, result, 1) |
| 13692 | require.Equal(t, chat.ID, result[ws.Workspace.ID]) |
| 13693 | }) |
| 13694 | |
| 13695 | t.Run("ArchivedChatsExcluded", func(t *testing.T) { |
nothing calls this directly
no test coverage detected