nolint:tparallel,paralleltest // It toggles the global chat ACL flag.
(t *testing.T)
| 1592 | |
| 1593 | //nolint:tparallel,paralleltest // It toggles the global chat ACL flag. |
| 1594 | func TestGetAuthorizedChatsACLSharingGroupACL(t *testing.T) { |
| 1595 | if testing.Short() { |
| 1596 | t.SkipNow() |
| 1597 | } |
| 1598 | |
| 1599 | rbac.SetChatACLDisabled(false) |
| 1600 | t.Cleanup(func() { rbac.SetChatACLDisabled(false) }) |
| 1601 | |
| 1602 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 1603 | sqlDB := testSQLDB(t) |
| 1604 | err := migrations.Up(sqlDB) |
| 1605 | require.NoError(t, err) |
| 1606 | db := database.New(sqlDB) |
| 1607 | authorizer := rbac.NewStrictCachingAuthorizer(prometheus.NewRegistry()) |
| 1608 | |
| 1609 | owner := dbgen.User(t, db, database.User{}) |
| 1610 | recipient := dbgen.User(t, db, database.User{}) |
| 1611 | org := dbgen.Organization(t, db, database.Organization{}) |
| 1612 | dbgen.OrganizationMember(t, db, database.OrganizationMember{ |
| 1613 | UserID: owner.ID, |
| 1614 | OrganizationID: org.ID, |
| 1615 | Roles: []string{rbac.RoleAgentsAccess()}, |
| 1616 | }) |
| 1617 | dbgen.OrganizationMember(t, db, database.OrganizationMember{ |
| 1618 | UserID: recipient.ID, |
| 1619 | OrganizationID: org.ID, |
| 1620 | Roles: []string{rbac.RoleAgentsAccess()}, |
| 1621 | }) |
| 1622 | group := dbgen.Group(t, db, database.Group{OrganizationID: org.ID}) |
| 1623 | dbgen.GroupMember(t, db, database.GroupMemberTable{UserID: recipient.ID, GroupID: group.ID}) |
| 1624 | |
| 1625 | dbgen.ChatProvider(t, db, database.ChatProvider{Provider: "openai", DisplayName: "OpenAI"}) |
| 1626 | modelCfg := dbgen.ChatModelConfig(t, db, database.ChatModelConfig{ |
| 1627 | Provider: "openai", |
| 1628 | Model: "test-model", |
| 1629 | CreatedBy: uuid.NullUUID{UUID: owner.ID, Valid: true}, |
| 1630 | UpdatedBy: uuid.NullUUID{UUID: owner.ID, Valid: true}, |
| 1631 | IsDefault: true, |
| 1632 | CompressionThreshold: 80, |
| 1633 | }) |
| 1634 | |
| 1635 | ownerChat := dbgen.Chat(t, db, database.Chat{ |
| 1636 | OrganizationID: org.ID, |
| 1637 | OwnerID: owner.ID, |
| 1638 | LastModelConfigID: modelCfg.ID, |
| 1639 | Title: "shared owner chat", |
| 1640 | }) |
| 1641 | recipientChat := dbgen.Chat(t, db, database.Chat{ |
| 1642 | OrganizationID: org.ID, |
| 1643 | OwnerID: recipient.ID, |
| 1644 | LastModelConfigID: modelCfg.ID, |
| 1645 | Title: "recipient chat", |
| 1646 | }) |
| 1647 | |
| 1648 | sharedGroupACL := database.ChatACL{ |
| 1649 | group.ID.String(): database.ChatACLEntry{Permissions: []policy.Action{policy.ActionRead}}, |
| 1650 | } |
| 1651 | err = db.UpdateChatACLByID(ctx, database.UpdateChatACLByIDParams{ |
nothing calls this directly
no test coverage detected