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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-24 15:09:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-24 15:09:42 +0300
commit729e3765d5feb762df1ccfbc228a8dd4662aa3f9 (patch)
treef326420fc64999c6bcc28816ed54f0972fb46459 /spec/frontend/notes/components
parent6f7881ee9dcec34141a8f34fc814b56b366d2b48 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/notes/components')
-rw-r--r--spec/frontend/notes/components/discussion_counter_spec.js59
1 files changed, 54 insertions, 5 deletions
diff --git a/spec/frontend/notes/components/discussion_counter_spec.js b/spec/frontend/notes/components/discussion_counter_spec.js
index c9375df07e8..77603c16f82 100644
--- a/spec/frontend/notes/components/discussion_counter_spec.js
+++ b/spec/frontend/notes/components/discussion_counter_spec.js
@@ -75,17 +75,66 @@ describe('DiscussionCounter component', () => {
});
it.each`
- title | resolved | hasNextBtn | isActive | icon | groupLength
- ${'hasNextButton'} | ${false} | ${true} | ${false} | ${'check-circle'} | ${2}
- ${'allResolved'} | ${true} | ${false} | ${true} | ${'check-circle-filled'} | ${0}
- `('renders correctly if $title', ({ resolved, hasNextBtn, isActive, icon, groupLength }) => {
+ title | resolved | isActive | icon | groupLength
+ ${'not allResolved'} | ${false} | ${false} | ${'check-circle'} | ${3}
+ ${'allResolved'} | ${true} | ${true} | ${'check-circle-filled'} | ${1}
+ `('renders correctly if $title', ({ resolved, isActive, icon, groupLength }) => {
updateStore({ resolvable: true, resolved });
wrapper = shallowMount(DiscussionCounter, { store, localVue });
- expect(wrapper.find(`.has-next-btn`).exists()).toBe(hasNextBtn);
expect(wrapper.find(`.is-active`).exists()).toBe(isActive);
expect(wrapper.find({ name: icon }).exists()).toBe(true);
expect(wrapper.findAll('[role="group"').length).toBe(groupLength);
});
});
+
+ describe('toggle all threads button', () => {
+ let toggleAllButton;
+ const updateStoreWithExpanded = expanded => {
+ const discussion = { ...discussionMock, expanded };
+ store.commit(types.SET_INITIAL_DISCUSSIONS, [discussion]);
+ store.dispatch('updateResolvableDiscussionsCounts');
+ wrapper = shallowMount(DiscussionCounter, { store, localVue });
+ toggleAllButton = wrapper.find('.toggle-all-discussions-btn');
+ };
+
+ afterEach(() => wrapper.destroy());
+
+ it('calls button handler when clicked', () => {
+ updateStoreWithExpanded(true);
+
+ wrapper.setMethods({ handleExpandDiscussions: jest.fn() });
+ toggleAllButton.trigger('click');
+
+ expect(wrapper.vm.handleExpandDiscussions).toHaveBeenCalledTimes(1);
+ });
+
+ it('collapses all discussions if expanded', () => {
+ updateStoreWithExpanded(true);
+
+ expect(wrapper.vm.allExpanded).toBe(true);
+ expect(toggleAllButton.find({ name: 'angle-up' }).exists()).toBe(true);
+
+ toggleAllButton.trigger('click');
+
+ return wrapper.vm.$nextTick().then(() => {
+ expect(wrapper.vm.allExpanded).toBe(false);
+ expect(toggleAllButton.find({ name: 'angle-down' }).exists()).toBe(true);
+ });
+ });
+
+ it('expands all discussions if collapsed', () => {
+ updateStoreWithExpanded(false);
+
+ expect(wrapper.vm.allExpanded).toBe(false);
+ expect(toggleAllButton.find({ name: 'angle-down' }).exists()).toBe(true);
+
+ toggleAllButton.trigger('click');
+
+ return wrapper.vm.$nextTick().then(() => {
+ expect(wrapper.vm.allExpanded).toBe(true);
+ expect(toggleAllButton.find({ name: 'angle-up' }).exists()).toBe(true);
+ });
+ });
+ });
});