From c3d266f3ba68d4a360aff2b6c4de13e0e4fff8ac Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Mon, 3 May 2021 10:59:52 -0400 Subject: [PATCH] Add in pending tests for missing project removal functionality --- test/unit/redux/studio-permissions.test.js | 161 +++++++++++---------- 1 file changed, 85 insertions(+), 76 deletions(-) diff --git a/test/unit/redux/studio-permissions.test.js b/test/unit/redux/studio-permissions.test.js index 1fbe19678..2f8d6defb 100644 --- a/test/unit/redux/studio-permissions.test.js +++ b/test/unit/redux/studio-permissions.test.js @@ -107,6 +107,7 @@ describe('studio projects', () => { expect(selectCanAddProjects(state)).toBe(expected); }); }); + describe('can remove projects', () => { test.each([ ['admin', true], @@ -118,9 +119,11 @@ describe('studio projects', () => { ['logged out', false] ])('%s: %s', (role, expected) => { setStateByRole(role); - // TODO this permission is wrong, curators can only remove projects they added expect(selectCanRemoveProjects(state)).toBe(expected); }); + // TODO this permission is wrong, curators can only remove projects they added + test.skip('anyone can remove one of their projects', () => {}); + test.skip('curators can remove only projects they', () => {}); }); }); @@ -232,92 +235,98 @@ describe('studio comments', () => { expect(selectCanEditOpenToAll(state)).toBe(expected); }); }); - describe('studio members', () => { - describe('can accept invitation', () => { +}); + +describe('studio members', () => { + describe('can accept invitation', () => { + test.each([ + ['admin', false], + ['curator', false], + ['manager', false], + ['creator', false], + ['invited', true], + ['logged in', false], + ['unconfirmed', false], + ['logged out', false] + ])('%s: %s', (role, expected) => { + setStateByRole(role); + expect(selectShowCuratorInvite(state)).toBe(expected); + }); + }); + + describe('can promote curators', () => { + test.each([ + ['admin', false], + ['curator', false], + ['manager', true], + ['creator', true], + ['logged in', false], + ['unconfirmed', false], + ['logged out', false] + ])('%s: %s', (role, expected) => { + setStateByRole(role); + expect(selectCanPromoteCurators(state)).toBe(expected); + }); + }); + + describe('can remove curators', () => { + test.each([ + ['admin', true], + ['curator', false], + ['manager', true], + ['creator', true], + ['logged in', false], + ['unconfirmed', false], + ['logged out', false] + ])('%s: %s', (role, expected) => { + setStateByRole(role); + expect(selectCanRemoveCurators(state)).toBe(expected); + }); + }); + + describe('can remove managers', () => { + test.each([ + ['admin', true], + ['curator', false], + ['manager', true], + ['creator', true], + ['logged in', false], + ['unconfirmed', false], + ['logged out', false] + ])('%s: %s', (role, expected) => { + setStateByRole(role); + expect(selectCanRemoveManager(state, '123')).toBe(expected); + }); + + describe('nobody can remove the studio creator', () => { test.each([ ['admin', false], ['curator', false], ['manager', false], ['creator', false], - ['invited', true], ['logged in', false], ['unconfirmed', false], ['logged out', false] ])('%s: %s', (role, expected) => { setStateByRole(role); - expect(selectShowCuratorInvite(state)).toBe(expected); - }); - }); - describe('can promote curators', () => { - test.each([ - ['admin', false], - ['curator', false], - ['manager', true], - ['creator', true], - ['logged in', false], - ['unconfirmed', false], - ['logged out', false] - ])('%s: %s', (role, expected) => { - setStateByRole(role); - expect(selectCanPromoteCurators(state)).toBe(expected); - }); - }); - describe('can remove curators', () => { - test.each([ - ['admin', true], - ['curator', false], - ['manager', true], - ['creator', true], - ['logged in', false], - ['unconfirmed', false], - ['logged out', false] - ])('%s: %s', (role, expected) => { - setStateByRole(role); - expect(selectCanRemoveCurators(state)).toBe(expected); - }); - }); - describe('can remove managers', () => { - test.each([ - ['admin', true], - ['curator', false], - ['manager', true], - ['creator', true], - ['logged in', false], - ['unconfirmed', false], - ['logged out', false] - ])('%s: %s', (role, expected) => { - setStateByRole(role); - expect(selectCanRemoveManager(state, '123')).toBe(expected); - }); - describe('nobody can remove the studio creator', () => { - test.each([ - ['admin', false], - ['curator', false], - ['manager', false], - ['creator', false], - ['logged in', false], - ['unconfirmed', false], - ['logged out', false] - ])('%s: %s', (role, expected) => { - setStateByRole(role); - state.studio.owner = 'the creator'; - expect(selectCanRemoveManager(state, 'the creator')).toBe(expected); - }); - }); - }); - describe('can invite curators', () => { - test.each([ - ['admin', false], - ['curator', false], - ['manager', true], - ['creator', false], - ['logged in', false], - ['unconfirmed', false], - ['logged out', false] - ])('%s: %s', (role, expected) => { - setStateByRole(role); - expect(selectCanInviteCurators(state)).toBe(expected); + state.studio.owner = 'the creator'; + expect(selectCanRemoveManager(state, 'the creator')).toBe(expected); }); }); }); + + describe('can invite curators', () => { + test.each([ + ['admin', false], + ['curator', false], + ['manager', true], + ['creator', false], + ['logged in', false], + ['unconfirmed', false], + ['logged out', false] + ])('%s: %s', (role, expected) => { + setStateByRole(role); + expect(selectCanInviteCurators(state)).toBe(expected); + }); + }); });