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
path: root/spec
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2018-11-23 12:22:11 +0300
committerSteve Azzopardi <steveazz@outlook.com>2018-11-30 12:27:14 +0300
commit103d453a00bff872e018696e5f690b52b15510ea (patch)
tree569f63549031ffa48aafa62239ac7c405cd67731 /spec
parentc35ed731a23980c8a247f97e57e87dd00a610be1 (diff)
Merge branch '_acet-fix-unable-to-reply-resolved-nondiff-discussion' into 'master'
Allow commenting to resolved non-diff discussions Closes #54330 See merge request gitlab-org/gitlab-ce!23279
Diffstat (limited to 'spec')
-rw-r--r--spec/javascripts/notes/components/noteable_discussion_spec.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/javascripts/notes/components/noteable_discussion_spec.js b/spec/javascripts/notes/components/noteable_discussion_spec.js
index 81cb3e1f74d..4b4403689d9 100644
--- a/spec/javascripts/notes/components/noteable_discussion_spec.js
+++ b/spec/javascripts/notes/components/noteable_discussion_spec.js
@@ -6,6 +6,7 @@ import { noteableDataMock, discussionMock, notesDataMock } from '../mock_data';
import mockDiffFile from '../../diffs/mock_data/diff_file';
const discussionWithTwoUnresolvedNotes = 'merge_requests/resolved_diff_discussion.json';
+const diffDiscussionFixture = 'merge_requests/diff_discussion.json';
describe('noteable_discussion component', () => {
const Component = Vue.extend(noteableDiscussion);
@@ -115,6 +116,49 @@ describe('noteable_discussion component', () => {
.catch(done.fail);
});
});
+
+ describe('isRepliesCollapsed', () => {
+ it('should return false for diff discussions', done => {
+ const diffDiscussion = getJSONFixture(diffDiscussionFixture)[0];
+ vm.$store.dispatch('setInitialNotes', [diffDiscussion]);
+
+ Vue.nextTick()
+ .then(() => {
+ expect(vm.isRepliesCollapsed).toEqual(false);
+ expect(vm.$el.querySelector('.js-toggle-replies')).not.toBeNull();
+ expect(vm.$el.querySelector('.discussion-reply-holder')).not.toBeNull();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('should return false if discussion does not have a reply', () => {
+ const discussion = { ...discussionMock, resolved: true };
+ discussion.notes = discussion.notes.slice(0, 1);
+ const noRepliesVm = new Component({
+ store,
+ propsData: { discussion },
+ }).$mount();
+
+ expect(noRepliesVm.isRepliesCollapsed).toEqual(false);
+ expect(noRepliesVm.$el.querySelector('.js-toggle-replies')).toBeNull();
+ expect(vm.$el.querySelector('.discussion-reply-holder')).not.toBeNull();
+ noRepliesVm.$destroy();
+ });
+
+ it('should return true for resolved non-diff discussion which has replies', () => {
+ const discussion = { ...discussionMock, resolved: true };
+ const resolvedDiscussionVm = new Component({
+ store,
+ propsData: { discussion },
+ }).$mount();
+
+ expect(resolvedDiscussionVm.isRepliesCollapsed).toEqual(true);
+ expect(resolvedDiscussionVm.$el.querySelector('.js-toggle-replies')).not.toBeNull();
+ expect(vm.$el.querySelector('.discussion-reply-holder')).not.toBeNull();
+ resolvedDiscussionVm.$destroy();
+ });
+ });
});
describe('methods', () => {