Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/notes/components')
-rw-r--r--spec/frontend/notes/components/discussion_actions_spec.js36
-rw-r--r--spec/frontend/notes/components/note_app_spec.js4
2 files changed, 31 insertions, 9 deletions
diff --git a/spec/frontend/notes/components/discussion_actions_spec.js b/spec/frontend/notes/components/discussion_actions_spec.js
index f582729d773..d3c8cf72376 100644
--- a/spec/frontend/notes/components/discussion_actions_spec.js
+++ b/spec/frontend/notes/components/discussion_actions_spec.js
@@ -7,6 +7,18 @@ import ResolveDiscussionButton from '~/notes/components/discussion_resolve_butto
import ResolveWithIssueButton from '~/notes/components/discussion_resolve_with_issue_button.vue';
import JumpToNextDiscussionButton from '~/notes/components/discussion_jump_to_next_button.vue';
+// NOTE: clone mock_data so that it is not accidentally mutated
+const createDiscussionMock = (props = {}) =>
+ Object.assign(JSON.parse(JSON.stringify(discussionMock)), props);
+const createNoteMock = (props = {}) =>
+ Object.assign(JSON.parse(JSON.stringify(discussionMock.notes[0])), props);
+const createResolvableNote = () =>
+ createNoteMock({ resolvable: true, current_user: { can_resolve: true } });
+const createUnresolvableNote = () =>
+ createNoteMock({ resolvable: false, current_user: { can_resolve: false } });
+const createUnallowedNote = () =>
+ createNoteMock({ resolvable: true, current_user: { can_resolve: false } });
+
describe('DiscussionActions', () => {
let wrapper;
const createComponentFactory = (shallow = true) => props => {
@@ -66,13 +78,23 @@ describe('DiscussionActions', () => {
expect(wrapper.find(JumpToNextDiscussionButton).exists()).toBe(false);
});
- it('does not renders discussion button for non-member', () => {
- const discussion = JSON.parse(JSON.stringify(discussionMock));
- discussion.notes[1].current_user.can_resolve = false;
- createComponent({ discussion });
-
- expect(wrapper.find(ResolveDiscussionButton).exists()).toBe(false);
- expect(wrapper.find(ResolveWithIssueButton).exists()).toBe(false);
+ describe.each`
+ desc | notes | shouldRender
+ ${'with no notes'} | ${[]} | ${true}
+ ${'with resolvable notes'} | ${[createResolvableNote(), createResolvableNote()]} | ${true}
+ ${'with unresolvable notes'} | ${[createResolvableNote(), createUnresolvableNote()]} | ${true}
+ ${'with unallowed note'} | ${[createResolvableNote(), createUnallowedNote()]} | ${false}
+ `('$desc', ({ notes, shouldRender }) => {
+ beforeEach(() => {
+ createComponent({
+ discussion: createDiscussionMock({ notes }),
+ });
+ });
+
+ it(shouldRender ? 'renders resolve buttons' : 'does not render resolve buttons', () => {
+ expect(wrapper.find(ResolveDiscussionButton).exists()).toBe(shouldRender);
+ expect(wrapper.find(ResolveWithIssueButton).exists()).toBe(shouldRender);
+ });
});
});
diff --git a/spec/frontend/notes/components/note_app_spec.js b/spec/frontend/notes/components/note_app_spec.js
index d2c17310e9c..a8ec47fd44f 100644
--- a/spec/frontend/notes/components/note_app_spec.js
+++ b/spec/frontend/notes/components/note_app_spec.js
@@ -8,7 +8,7 @@ import service from '~/notes/services/notes_service';
import createStore from '~/notes/stores';
import '~/behaviors/markdown/render_gfm';
import { setTestTimeout } from 'helpers/timeout';
-// TODO: use generated fixture (https://gitlab.com/gitlab-org/gitlab-ce/issues/62491)
+// TODO: use generated fixture (https://gitlab.com/gitlab-org/gitlab-foss/issues/62491)
import * as mockData from '../../../javascripts/notes/mock_data';
setTestTimeout(1000);
@@ -108,7 +108,7 @@ describe('note_app', () => {
it('should render list of notes', () => {
const note =
mockData.INDIVIDUAL_NOTE_RESPONSE_MAP.GET[
- '/gitlab-org/gitlab-ce/issues/26/discussions.json'
+ '/gitlab-org/gitlab-foss/issues/26/discussions.json'
][0].notes[0];
expect(