| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { PermissionsStore } from './PermissionsStore';
- import { backendSrv } from 'test/mocks/common';
- describe('PermissionsStore', () => {
- let store;
- beforeEach(async () => {
- backendSrv.get.mockReturnValue(
- Promise.resolve([
- { id: 2, dashboardId: 1, role: 'Viewer', permission: 1, permissionName: 'View' },
- { id: 3, dashboardId: 1, role: 'Editor', permission: 1, permissionName: 'Edit' },
- {
- id: 4,
- dashboardId: 10,
- permission: 1,
- permissionName: 'View',
- teamId: 1,
- teamName: 'MyTestTeam',
- },
- ])
- );
- backendSrv.post = jest.fn(() => Promise.resolve({}));
- store = PermissionsStore.create(
- {
- fetching: false,
- items: [],
- },
- {
- backendSrv: backendSrv,
- }
- );
- await store.load(1, false, false);
- });
- it('should save update on permission change', async () => {
- expect(store.items[0].permission).toBe(1);
- expect(store.items[0].permissionName).toBe('View');
- await store.updatePermissionOnIndex(0, 2, 'Edit');
- expect(store.items[0].permission).toBe(2);
- expect(store.items[0].permissionName).toBe('Edit');
- expect(backendSrv.post.mock.calls.length).toBe(1);
- expect(backendSrv.post.mock.calls[0][0]).toBe('/api/dashboards/id/1/permissions');
- });
- it('should save removed permissions automatically', async () => {
- expect(store.items.length).toBe(3);
- await store.removeStoreItem(2);
- expect(store.items.length).toBe(2);
- expect(backendSrv.post.mock.calls.length).toBe(1);
- expect(backendSrv.post.mock.calls[0][0]).toBe('/api/dashboards/id/1/permissions');
- });
- describe('when one inherited and one not inherited team permission are added', () => {
- beforeEach(async () => {
- const overridingItemForChildDashboard = {
- team: 'MyTestTeam',
- dashboardId: 1,
- teamId: 1,
- permission: 2,
- };
- store.resetNewType();
- store.newItem.setTeam(overridingItemForChildDashboard.teamId, overridingItemForChildDashboard.team);
- store.newItem.setPermission(overridingItemForChildDashboard.permission);
- await store.addStoreItem();
- });
- it('should add new overriding permission', () => {
- expect(store.items.length).toBe(4);
- });
- });
- });
|