(t *testing.T)
| 369 | } |
| 370 | |
| 371 | func TestListChatsExcludesSharedChats(t *testing.T) { |
| 372 | t.Parallel() |
| 373 | |
| 374 | ctx := testutil.Context(t, testutil.WaitLong) |
| 375 | client, db := newChatClientWithDatabase(t) |
| 376 | firstUser := coderdtest.CreateFirstUser(t, client.Client) |
| 377 | modelConfig := createChatModelConfig(t, client) |
| 378 | viewerClient, viewer := coderdtest.CreateAnotherUser(t, client.Client, firstUser.OrganizationID, rbac.ScopedRoleAgentsAccess(firstUser.OrganizationID)) |
| 379 | viewerClientExp := codersdk.NewExperimentalClient(viewerClient) |
| 380 | sharedChat := dbgen.Chat(t, db, database.Chat{ |
| 381 | OrganizationID: firstUser.OrganizationID, |
| 382 | OwnerID: firstUser.UserID, |
| 383 | LastModelConfigID: modelConfig.ID, |
| 384 | Title: "shared with viewer", |
| 385 | }) |
| 386 | viewerChat := dbgen.Chat(t, db, database.Chat{ |
| 387 | OrganizationID: firstUser.OrganizationID, |
| 388 | OwnerID: viewer.ID, |
| 389 | LastModelConfigID: modelConfig.ID, |
| 390 | Title: "viewer owned", |
| 391 | }) |
| 392 | |
| 393 | err := client.UpdateChatACL(ctx, sharedChat.ID, codersdk.UpdateChatACL{ |
| 394 | UserRoles: map[string]codersdk.ChatRole{ |
| 395 | viewer.ID.String(): codersdk.ChatRoleRead, |
| 396 | }, |
| 397 | }) |
| 398 | require.NoError(t, err) |
| 399 | |
| 400 | ownedOnly, err := viewerClientExp.ListChats(ctx, nil) |
| 401 | require.NoError(t, err) |
| 402 | require.Equal(t, map[uuid.UUID]struct{}{viewerChat.ID: {}}, chatIDSet(ownedOnly)) |
| 403 | } |
| 404 | |
| 405 | //nolint:paralleltest // This test verifies a process-wide RBAC kill switch. |
| 406 | func TestChatSharingDisabled(t *testing.T) { |
nothing calls this directly
no test coverage detected