Add in pending tests for missing project removal functionality

This commit is contained in:
Paul Kaplan 2021-05-03 10:59:52 -04:00
parent 0f8baaaa45
commit c3d266f3ba

View file

@ -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);
});
});
}); });