feat(customers): add optional group assignees with OR visibility for people, companies, and birthdays
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
import { describe, it } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { leadsDeepWhere, resolveSectionAccess } from '../src/common/data-access';
|
||||
import {
|
||||
customersCompanyWhere,
|
||||
customersPersonWhere,
|
||||
leadsDeepWhere,
|
||||
resolveSectionAccess,
|
||||
} from '../src/common/data-access';
|
||||
import {
|
||||
noteAccessWhere,
|
||||
normalizeDataVisibility,
|
||||
@@ -122,3 +127,49 @@ describe('عمق داده وقتی نقش فقط بعضی بخشها را ذ
|
||||
assert.deepEqual(leads.section, { mode: 'rules', rules: [{ owners: ['self'] }] });
|
||||
});
|
||||
});
|
||||
|
||||
describe('مسئول گروه مشتری روی عمق داده', () => {
|
||||
const selfAccess = { mode: 'rules' as const, rules: [{ owners: ['self' as const] }] };
|
||||
|
||||
it('محدودیت self با OR مسئول گروه برای شخص', () => {
|
||||
const where = customersPersonWhere({
|
||||
userId: 'u1',
|
||||
role: 'sales',
|
||||
customersAccess: selfAccess,
|
||||
teamPeerIds: null,
|
||||
});
|
||||
assert.deepEqual(where, {
|
||||
OR: [
|
||||
{ ownerId: 'u1' },
|
||||
{ groupLinks: { some: { group: { assignees: { some: { id: 'u1' } } } } } },
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
it('محدودیت self با OR مسئول گروه برای شرکت', () => {
|
||||
const where = customersCompanyWhere({
|
||||
userId: 'u1',
|
||||
role: 'sales',
|
||||
customersAccess: selfAccess,
|
||||
teamPeerIds: null,
|
||||
});
|
||||
assert.deepEqual(where, {
|
||||
OR: [
|
||||
{ ownerId: 'u1' },
|
||||
{ groupLinks: { some: { group: { assignees: { some: { id: 'u1' } } } } } },
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
it('بدون محدودیت عمقی، فیلتر اضافه نمیشود', () => {
|
||||
assert.deepEqual(
|
||||
customersPersonWhere({
|
||||
userId: 'u1',
|
||||
role: 'sales',
|
||||
customersAccess: { mode: 'all', rules: [] },
|
||||
teamPeerIds: null,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user