UNPKG

@superawesome/permissions

Version:

Fine grained permissions / access control with ownerships & attribute picking, done right.

64 lines 4.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // note: so we can require this / execute inline code while dev :-) const _ = require("lodash"); const _f = require("lodash/fp"); const data_fixtures_1 = require("./data.fixtures"); describe('Fixtures tests', () => { // prettier-ignore describe('listOwned', () => { it('lists documentIds created by user', async () => { expect(await data_fixtures_1.listOwned_listUserCreatedDocuments(data_fixtures_1.USERS.employee1)).toIncludeSameMembers([1, 10, 100]); }); it('lists documentIds created by User and created by all managed Users', async () => { expect(await data_fixtures_1.listOwned_DocsOfMeAndMyManagedUsers(data_fixtures_1.USERS.employee1)).toIncludeSameMembers([1, 10, 100]); expect(await data_fixtures_1.listOwned_DocsOfMeAndMyManagedUsers(data_fixtures_1.USERS.employeeManager2)).toIncludeSameMembers([1, 10, 100, 2, 20, 200, 4, 40, 400]); expect(await data_fixtures_1.listOwned_DocsOfMeAndMyManagedUsers(data_fixtures_1.USERS.qaManager3)).toIncludeSameMembers([2, 20, 200, 3, 30, 300, 5, 50, 500]); }); it('list Docs Of User and of all users in user`s Company ', async () => { expect(await data_fixtures_1.listOwned_DocsOfMeAndMyCompanyUsers(data_fixtures_1.USERS.employee1)).toIncludeSameMembers([1, 10, 100, 2, 20, 200, 3, 30, 300, 7, 70, 700]); expect(await data_fixtures_1.listOwned_DocsOfMeAndMyCompanyUsers(data_fixtures_1.USERS.companyAdmin4)).toIncludeSameMembers([4, 40, 400, 5, 50, 500, 6, 60, 600]); }); it('list Docs Of User + of users managed by User + of all users in user`s Company', async () => { const allowedDocIds = _.uniq([ ...(await data_fixtures_1.listOwned_DocsOfMeAndMyManagedUsers(data_fixtures_1.USERS.managerAndCompanyAdmin7)), ...(await data_fixtures_1.listOwned_DocsOfMeAndMyCompanyUsers(data_fixtures_1.USERS.managerAndCompanyAdmin7)), ]); expect(allowedDocIds).toIncludeSameMembers([1, 10, 100, 2, 20, 200, 3, 30, 300, 5, 50, 500, 6, 60, 600, 7, 70, 700]); }); }); describe('limitOwned', () => { it('filters documentIds created by user', async () => { const limitOwnDocs = data_fixtures_1.limitOwned_listUserCreatedDocuments({ user: data_fixtures_1.USERS.employee1 }); expect(_f .filter(limitOwnDocs)(data_fixtures_1.ALL_DOCUMENTS) .map((doc) => doc.id)).toIncludeSameMembers([1, 10, 100]); }); it('filters documentIds created by User and created by all managed Users', () => { const getFilteredDocumentIdsForUser = (user) => { const limitOwnDocs = data_fixtures_1.limitOwned_DocsOfMeAndMyManagedUsers({ user }); return _f .filter(limitOwnDocs)(data_fixtures_1.ALL_DOCUMENTS) .map((doc) => doc.id); }; expect(getFilteredDocumentIdsForUser(data_fixtures_1.USERS.employee1)).toIncludeSameMembers([1, 10, 100]); // prettier-ignore expect(getFilteredDocumentIdsForUser(data_fixtures_1.USERS.employeeManager2)).toIncludeSameMembers([1, 10, 100, 2, 20, 200, 4, 40, 400]); // prettier-ignore expect(getFilteredDocumentIdsForUser(data_fixtures_1.USERS.qaManager3)).toIncludeSameMembers([2, 20, 200, 3, 30, 300, 5, 50, 500]); }); it('filters Docs Of User and of all users in user`s Company ', () => { const getFilteredDocumentIdsForUser = (user) => { const limitOwnDocs = data_fixtures_1.limitOwned_DocsOfMeAndMyCompanyUsers({ user }); return _f .filter(limitOwnDocs)(data_fixtures_1.ALL_DOCUMENTS) .map((doc) => doc.id); }; // prettier-ignore expect(getFilteredDocumentIdsForUser(data_fixtures_1.USERS.employee1)).toIncludeSameMembers([1, 10, 100, 2, 20, 200, 3, 30, 300, 7, 70, 700,]); // prettier-ignore expect(getFilteredDocumentIdsForUser(data_fixtures_1.USERS.companyAdmin4)).toIncludeSameMembers([4, 40, 400, 5, 50, 500, 6, 60, 600,]); }); }); }); //# sourceMappingURL=data.fixtures.spec.js.map