mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-30 10:58:23 -05:00
Add in pending tests for missing project removal functionality
This commit is contained in:
parent
0f8baaaa45
commit
c3d266f3ba
1 changed files with 85 additions and 76 deletions
|
@ -107,6 +107,7 @@ describe('studio projects', () => {
|
||||||
expect(selectCanAddProjects(state)).toBe(expected);
|
expect(selectCanAddProjects(state)).toBe(expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('can remove projects', () => {
|
describe('can remove projects', () => {
|
||||||
test.each([
|
test.each([
|
||||||
['admin', true],
|
['admin', true],
|
||||||
|
@ -118,9 +119,11 @@ describe('studio projects', () => {
|
||||||
['logged out', false]
|
['logged out', false]
|
||||||
])('%s: %s', (role, expected) => {
|
])('%s: %s', (role, expected) => {
|
||||||
setStateByRole(role);
|
setStateByRole(role);
|
||||||
// TODO this permission is wrong, curators can only remove projects they added
|
|
||||||
expect(selectCanRemoveProjects(state)).toBe(expected);
|
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);
|
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([
|
test.each([
|
||||||
['admin', false],
|
['admin', false],
|
||||||
['curator', false],
|
['curator', false],
|
||||||
['manager', false],
|
['manager', false],
|
||||||
['creator', false],
|
['creator', false],
|
||||||
['invited', true],
|
|
||||||
['logged in', false],
|
['logged in', false],
|
||||||
['unconfirmed', false],
|
['unconfirmed', false],
|
||||||
['logged out', false]
|
['logged out', false]
|
||||||
])('%s: %s', (role, expected) => {
|
])('%s: %s', (role, expected) => {
|
||||||
setStateByRole(role);
|
setStateByRole(role);
|
||||||
expect(selectShowCuratorInvite(state)).toBe(expected);
|
state.studio.owner = 'the creator';
|
||||||
});
|
expect(selectCanRemoveManager(state, 'the creator')).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);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue