eaad244181
* Refactoring & Feature: edit/delete group and challenge tasks - Remove showOption from tasks props - Pass all needed data to task for understand in mapGetter function which controls we should show - Improve current solution with edit and delete logic * Fix: this in template * Fix & Test: extend tests, fix can Edit/Delete functions * Fix: allow user edit challenge tasks on dashboard * Fix: test case after code change * fix import path * Fix: - Extend canEdit and canDelete functions with admin role - Clarify canEdit and canDelete conditions - Extend test cases
76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
import generateStore from '@/store';
|
|
|
|
|
|
describe('canEdit getter', () => {
|
|
let store;
|
|
let group;
|
|
let challenge;
|
|
let task;
|
|
|
|
beforeEach(() => {
|
|
store = generateStore();
|
|
|
|
store.state.user.data = {
|
|
id: 10,
|
|
contributor: {
|
|
admin: false,
|
|
},
|
|
};
|
|
|
|
group = {
|
|
leader: {
|
|
_id: 123,
|
|
},
|
|
managers: {
|
|
123984: {},
|
|
},
|
|
};
|
|
|
|
challenge = {
|
|
leader: {
|
|
id: 123,
|
|
},
|
|
};
|
|
|
|
task = { userId: 1, challenge: { id: 2 } };
|
|
});
|
|
it('can Edit task in own dashboard', () => {
|
|
expect(store.getters['tasks:canEdit'](task, 'challenge', true, null, challenge)).to.equal(true);
|
|
expect(store.getters['tasks:canEdit'](task, 'group', true, group, null)).to.equal(true);
|
|
});
|
|
|
|
it('can Edit any challenge task if admin', () => {
|
|
store.state.user.data.contributor.admin = true;
|
|
|
|
expect(store.getters['tasks:canEdit'](task, 'challenge', true, null, challenge)).to.equal(true);
|
|
expect(store.getters['tasks:canEdit'](task, 'challenge', false, null, challenge)).to.equal(true);
|
|
});
|
|
|
|
it('can Edit own challenge task if leader', () => {
|
|
store.state.user.data.id = 123;
|
|
|
|
expect(store.getters['tasks:canEdit'](task, 'challenge', true, null, challenge)).to.equal(true);
|
|
expect(store.getters['tasks:canEdit'](task, 'challenge', false, null, challenge)).to.equal(true);
|
|
});
|
|
|
|
it('cannot Edit challenge task if not leader on challenge page', () => {
|
|
expect(store.getters['tasks:canEdit'](task, 'challenge', false, null, challenge)).to.equal(false);
|
|
});
|
|
|
|
it('can Edit group task as leader on group page', () => {
|
|
store.state.user.data.id = 123;
|
|
|
|
expect(store.getters['tasks:canEdit'](task, 'group', false, group)).to.equal(true);
|
|
});
|
|
|
|
it('can Edit group task if manager on group page', () => {
|
|
store.state.user.data.id = 123984;
|
|
|
|
expect(store.getters['tasks:canEdit'](task, 'group', false, group)).to.equal(true);
|
|
});
|
|
|
|
it('cannot Edit group task if not leader on group page', () => {
|
|
expect(store.getters['tasks:canEdit'](task, 'group', false, group)).to.equal(false);
|
|
});
|
|
});
|