Commit e460a6dd authored by Kushal Pandya's avatar Kushal Pandya

Merge branch 'xanf-vtu-30-emit' into 'master'

Wrap emit calls to nextTick

Closes #38114

See merge request gitlab-org/gitlab!22323
parents 41537027 2ec90ad6
...@@ -270,6 +270,7 @@ describe('ProductivityApp component', () => { ...@@ -270,6 +270,7 @@ describe('ProductivityApp component', () => {
beforeEach(() => { beforeEach(() => {
jest.spyOn(store, 'dispatch'); jest.spyOn(store, 'dispatch');
findCommitBasedMetricChart().vm.$emit('metricTypeChange', 'loc_per_commit'); findCommitBasedMetricChart().vm.$emit('metricTypeChange', 'loc_per_commit');
return wrapper.vm.$nextTick();
}); });
it('should call setMetricType when `metricTypeChange` is emitted on the metric chart', () => { it('should call setMetricType when `metricTypeChange` is emitted on the metric chart', () => {
...@@ -326,6 +327,7 @@ describe('ProductivityApp component', () => { ...@@ -326,6 +327,7 @@ describe('ProductivityApp component', () => {
beforeEach(() => { beforeEach(() => {
jest.spyOn(store, 'dispatch'); jest.spyOn(store, 'dispatch');
findScatterplotMetricChart().vm.$emit('metricTypeChange', 'loc_per_commit'); findScatterplotMetricChart().vm.$emit('metricTypeChange', 'loc_per_commit');
return wrapper.vm.$nextTick();
}); });
it('should call setMetricType when `metricTypeChange` is emitted on the metric chart', () => { it('should call setMetricType when `metricTypeChange` is emitted on the metric chart', () => {
......
...@@ -79,7 +79,9 @@ describe('MergeRequestTable component', () => { ...@@ -79,7 +79,9 @@ describe('MergeRequestTable component', () => {
it('it emits the metric key when item is selected from the dropdown', () => { it('it emits the metric key when item is selected from the dropdown', () => {
findFirstDropdownItem().vm.$emit('click'); findFirstDropdownItem().vm.$emit('click');
expect(wrapper.emitted().columnMetricChange[0]).toEqual(['time_to_first_comment']); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().columnMetricChange[0]).toEqual(['time_to_first_comment']);
});
}); });
}); });
}); });
...@@ -40,7 +40,10 @@ describe('DateRangeDropdown component', () => { ...@@ -40,7 +40,10 @@ describe('DateRangeDropdown component', () => {
it('emits the "selected" event with the selected item value', () => { it('emits the "selected" event with the selected item value', () => {
findFirstDropdownElement().vm.$emit('click'); findFirstDropdownElement().vm.$emit('click');
expect(wrapper.emitted().selected[0]).toEqual([7]);
return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().selected[0]).toEqual([7]);
});
}); });
it('it renders the correct dropdown text when no item is selected', () => { it('it renders the correct dropdown text when no item is selected', () => {
......
...@@ -53,7 +53,9 @@ describe('Approvals ApproversListItem', () => { ...@@ -53,7 +53,9 @@ describe('Approvals ApproversListItem', () => {
const button = wrapper.find(GlButton); const button = wrapper.find(GlButton);
button.vm.$emit('click'); button.vm.$emit('click');
expect(wrapper.emittedByOrder()).toEqual([{ name: 'remove', args: [TEST_USER] }]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emittedByOrder()).toEqual([{ name: 'remove', args: [TEST_USER] }]);
});
}); });
}); });
......
...@@ -64,9 +64,11 @@ describe('ApproversList', () => { ...@@ -64,9 +64,11 @@ describe('ApproversList', () => {
const item = wrapper.findAll(ApproversListItem).at(idx); const item = wrapper.findAll(ApproversListItem).at(idx);
item.vm.$emit('remove', approver); item.vm.$emit('remove', approver);
const expected = TEST_APPROVERS.filter((x, i) => i !== idx); return wrapper.vm.$nextTick().then(() => {
const expected = TEST_APPROVERS.filter((x, i) => i !== idx);
expect(wrapper.emittedByOrder()).toEqual([{ name: 'input', args: [expected] }]); expect(wrapper.emittedByOrder()).toEqual([{ name: 'input', args: [expected] }]);
});
}); });
}); });
}); });
......
...@@ -42,8 +42,10 @@ describe('burndown_chart', () => { ...@@ -42,8 +42,10 @@ describe('burndown_chart', () => {
weightButton().vm.$emit('click'); weightButton().vm.$emit('click');
expect(issuesButton().attributes('variant')).toBe('inverted-primary'); return wrapper.vm.$nextTick().then(() => {
expect(weightButton().attributes('variant')).toBe('primary'); expect(issuesButton().attributes('variant')).toBe('inverted-primary');
expect(weightButton().attributes('variant')).toBe('primary');
});
}); });
describe('with single point', () => { describe('with single point', () => {
......
...@@ -39,8 +39,14 @@ describe('Batch delete button component', () => { ...@@ -39,8 +39,14 @@ describe('Batch delete button component', () => {
it('emits `deleteSelectedDesigns` event on modal ok click', () => { it('emits `deleteSelectedDesigns` event on modal ok click', () => {
createComponent(); createComponent();
findButton().vm.$emit('click'); findButton().vm.$emit('click');
findModal().vm.$emit('ok'); return wrapper.vm
.$nextTick()
expect(wrapper.emitted().deleteSelectedDesigns).toBeTruthy(); .then(() => {
findModal().vm.$emit('ok');
return wrapper.vm.$nextTick();
})
.then(() => {
expect(wrapper.emitted().deleteSelectedDesigns).toBeTruthy();
});
}); });
}); });
...@@ -87,7 +87,10 @@ describe('Project Header', () => { ...@@ -87,7 +87,10 @@ describe('Project Header', () => {
.at(0) .at(0)
.find(GlButton) .find(GlButton)
.vm.$emit('click'); .vm.$emit('click');
expect(wrapper.emitted('remove')).toContainEqual([propsData.project.remove_path]);
return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('remove')).toContainEqual([propsData.project.remove_path]);
});
}); });
}); });
}); });
...@@ -210,7 +210,9 @@ describe('SidebarDatePicker', () => { ...@@ -210,7 +210,9 @@ describe('SidebarDatePicker', () => {
createComponent({ showToggleSidebar: true }); createComponent({ showToggleSidebar: true });
wrapper.find(ToggleSidebar).vm.$emit('toggle'); wrapper.find(ToggleSidebar).vm.$emit('toggle');
expect(wrapper.emitted().toggleCollapse).toBeDefined(); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().toggleCollapse).toBeDefined();
});
}); });
it('renders expected template', () => { it('renders expected template', () => {
......
...@@ -29,7 +29,9 @@ describe('Configure Feature Flags Modal', () => { ...@@ -29,7 +29,9 @@ describe('Configure Feature Flags Modal', () => {
describe('rotate token', () => { describe('rotate token', () => {
it('should emit a `token` event on click', () => { it('should emit a `token` event on click', () => {
wrapper.find(GlButton).vm.$emit('click'); wrapper.find(GlButton).vm.$emit('click');
expect(wrapper.emitted('token')).toEqual([[]]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('token')).toEqual([[]]);
});
}); });
it('should display an error if there is a rotate error', () => { it('should display an error if there is a rotate error', () => {
......
...@@ -82,7 +82,9 @@ describe('Feature flags > Environments dropdown ', () => { ...@@ -82,7 +82,9 @@ describe('Feature flags > Environments dropdown ', () => {
.at(0); .at(0);
button.vm.$emit('click'); button.vm.$emit('click');
expect(wrapper.emitted('selectEnvironment')).toEqual([['production']]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('selectEnvironment')).toEqual([['production']]);
});
}); });
}); });
describe('on click clear button', () => { describe('on click clear button', () => {
...@@ -118,7 +120,9 @@ describe('Feature flags > Environments dropdown ', () => { ...@@ -118,7 +120,9 @@ describe('Feature flags > Environments dropdown ', () => {
.at(1) .at(1)
.vm.$emit('click'); .vm.$emit('click');
expect(wrapper.emitted('createClicked')).toEqual([['production']]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('createClicked')).toEqual([['production']]);
});
}); });
}); });
}); });
...@@ -129,7 +129,9 @@ describe('Feature flag table', () => { ...@@ -129,7 +129,9 @@ describe('Feature flag table', () => {
toggle.vm.$emit('change'); toggle.vm.$emit('change');
const flag = { ...props.featureFlags[0], active: !props.featureFlags[0].active }; const flag = { ...props.featureFlags[0], active: !props.featureFlags[0].active };
expect(wrapper.emitted('toggle-flag')).toEqual([[flag]]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('toggle-flag')).toEqual([[flag]]);
});
}); });
}); });
......
...@@ -49,7 +49,9 @@ describe('EE IDE TerminalControls', () => { ...@@ -49,7 +49,9 @@ describe('EE IDE TerminalControls', () => {
buttons.at(0).vm.$emit('click'); buttons.at(0).vm.$emit('click');
expect(wrapper.emittedByOrder()).toEqual([{ name: 'scroll-up', args: [] }]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emittedByOrder()).toEqual([{ name: 'scroll-up', args: [] }]);
});
}); });
it('emits "scroll-down" when click down button', () => { it('emits "scroll-down" when click down button', () => {
...@@ -59,6 +61,8 @@ describe('EE IDE TerminalControls', () => { ...@@ -59,6 +61,8 @@ describe('EE IDE TerminalControls', () => {
buttons.at(1).vm.$emit('click'); buttons.at(1).vm.$emit('click');
expect(wrapper.emittedByOrder()).toEqual([{ name: 'scroll-down', args: [] }]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emittedByOrder()).toEqual([{ name: 'scroll-down', args: [] }]);
});
}); });
}); });
...@@ -50,7 +50,9 @@ describe('LogControlButtons', () => { ...@@ -50,7 +50,9 @@ describe('LogControlButtons', () => {
findRefreshBtn().vm.$emit('click'); findRefreshBtn().vm.$emit('click');
expect(wrapper.emitted('refresh')).toHaveLength(1); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('refresh')).toHaveLength(1);
});
}); });
describe('when scrolling actions are enabled', () => { describe('when scrolling actions are enabled', () => {
......
...@@ -204,8 +204,10 @@ describe('AlertWidget', () => { ...@@ -204,8 +204,10 @@ describe('AlertWidget', () => {
findWidgetForm().vm.$emit('delete', { alert: alertPath }); findWidgetForm().vm.$emit('delete', { alert: alertPath });
expect(mockDeleteAlert).toHaveBeenCalledWith(alertPath); return wrapper.vm.$nextTick().then(() => {
expect(findAlertErrorMessage().exists()).toBe(false); expect(mockDeleteAlert).toHaveBeenCalledWith(alertPath);
expect(findAlertErrorMessage().exists()).toBe(false);
});
}); });
describe('when delete fails', () => { describe('when delete fails', () => {
...@@ -227,6 +229,7 @@ describe('AlertWidget', () => { ...@@ -227,6 +229,7 @@ describe('AlertWidget', () => {
}); });
findWidgetForm().vm.$emit('delete', { alert: alertPath }); findWidgetForm().vm.$emit('delete', { alert: alertPath });
return wrapper.vm.$nextTick();
}); });
it('shows error message', () => { it('shows error message', () => {
......
...@@ -56,12 +56,14 @@ describe('project header component', () => { ...@@ -56,12 +56,14 @@ describe('project header component', () => {
it('emits project removal link on click', () => { it('emits project removal link on click', () => {
wrapper.find('.js-remove-button').vm.$emit('click'); wrapper.find('.js-remove-button').vm.$emit('click');
expect(wrapper.emittedByOrder()).toContainEqual( return wrapper.vm.$nextTick().then(() => {
expect.objectContaining({ expect(wrapper.emittedByOrder()).toContainEqual(
name: 'remove', expect.objectContaining({
args: [mockOneProject.remove_path], name: 'remove',
}), args: [mockOneProject.remove_path],
); }),
);
});
}); });
}); });
......
...@@ -53,10 +53,13 @@ describe('ResetKey', () => { ...@@ -53,10 +53,13 @@ describe('ResetKey', () => {
vm.find(GlModal).vm.$emit('ok'); vm.find(GlModal).vm.$emit('ok');
return waitForPromises().then(() => { return vm.vm
expect(vm.vm.authorizationKey).toEqual('newToken'); .$nextTick()
expect(vm.find('#authorization-key').attributes('value')).toEqual('newToken'); .then(waitForPromises)
}); .then(() => {
expect(vm.vm.authorizationKey).toEqual('newToken');
expect(vm.find('#authorization-key').attributes('value')).toEqual('newToken');
});
}); });
it('reset key failure shows error', () => { it('reset key failure shows error', () => {
...@@ -64,15 +67,18 @@ describe('ResetKey', () => { ...@@ -64,15 +67,18 @@ describe('ResetKey', () => {
vm.find(GlModal).vm.$emit('ok'); vm.find(GlModal).vm.$emit('ok');
return waitForPromises().then(() => { return vm.vm
expect(vm.find('#authorization-key').attributes('value')).toEqual( .$nextTick()
propsData.initialAuthorizationKey, .then(waitForPromises)
); .then(() => {
expect(vm.find('#authorization-key').attributes('value')).toEqual(
expect(document.querySelector('.flash-container').innerText.trim()).toEqual( propsData.initialAuthorizationKey,
'Failed to reset key. Please try again.', );
);
}); expect(document.querySelector('.flash-container').innerText.trim()).toEqual(
'Failed to reset key. Please try again.',
);
});
}); });
}); });
......
...@@ -92,6 +92,7 @@ describe('ThreatMonitoringApp component', () => { ...@@ -92,6 +92,7 @@ describe('ThreatMonitoringApp component', () => {
describe('dismissing the alert', () => { describe('dismissing the alert', () => {
beforeEach(() => { beforeEach(() => {
findAlert().vm.$emit('dismiss'); findAlert().vm.$emit('dismiss');
return wrapper.vm.$nextTick();
}); });
it('hides the alert', () => { it('hides the alert', () => {
......
...@@ -239,11 +239,14 @@ describe('ReadyToMerge', () => { ...@@ -239,11 +239,14 @@ describe('ReadyToMerge', () => {
it('should perform the merge when the user confirms their intent to merge immediately', () => { it('should perform the merge when the user confirms their intent to merge immediately', () => {
factory({ preferredAutoMergeStrategy: MT_MERGE_STRATEGY }); factory({ preferredAutoMergeStrategy: MT_MERGE_STRATEGY });
clickMergeImmediately(); return clickMergeImmediately()
.then(() => {
dialog.vm.$emit('mergeImmediately'); dialog.vm.$emit('mergeImmediately');
return wrapper.vm.$nextTick();
expect(vm.handleMergeButtonClick).toHaveBeenCalled(); })
.then(() => {
expect(vm.handleMergeButtonClick).toHaveBeenCalled();
});
}); });
it('should not ask for confirmation in non-merge train scenarios', () => { it('should not ask for confirmation in non-merge train scenarios', () => {
......
...@@ -79,7 +79,9 @@ describe('KnativeDomainEditor', () => { ...@@ -79,7 +79,9 @@ describe('KnativeDomainEditor', () => {
it('triggers save event and pass current knative hostname', () => { it('triggers save event and pass current knative hostname', () => {
wrapper.find(LoadingButton).vm.$emit('click'); wrapper.find(LoadingButton).vm.$emit('click');
expect(wrapper.emitted('save')[0]).toEqual([knative.hostname]); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted('save')[0]).toEqual([knative.hostname]);
});
}); });
}); });
......
...@@ -35,9 +35,10 @@ describe('UninstallApplicationConfirmationModal', () => { ...@@ -35,9 +35,10 @@ describe('UninstallApplicationConfirmationModal', () => {
wrapper.find(GlModal).vm.$emit('ok'); wrapper.find(GlModal).vm.$emit('ok');
}); });
it('emits confirm event', () => { it('emits confirm event', () =>
expect(wrapper.emitted('confirm')).toBeTruthy(); wrapper.vm.$nextTick().then(() => {
}); expect(wrapper.emitted('confirm')).toBeTruthy();
}));
it('calls track uninstall button click mixin', () => { it('calls track uninstall button click mixin', () => {
expect(wrapper.vm.trackUninstallButtonClick).toHaveBeenCalledWith(INGRESS); expect(wrapper.vm.trackUninstallButtonClick).toHaveBeenCalledWith(INGRESS);
......
...@@ -70,7 +70,9 @@ describe('CrossplaneProviderStack component', () => { ...@@ -70,7 +70,9 @@ describe('CrossplaneProviderStack component', () => {
}; };
createComponent({ crossplane }); createComponent({ crossplane });
findFirstDropdownElement().vm.$emit('click'); findFirstDropdownElement().vm.$emit('click');
expect(wrapper.emitted().set[0][0].code).toEqual('gcp'); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().set[0][0].code).toEqual('gcp');
});
}); });
it('renders the correct dropdown text when no stack is selected', () => { it('renders the correct dropdown text when no stack is selected', () => {
......
...@@ -126,7 +126,9 @@ describe('DiffFileHeader component', () => { ...@@ -126,7 +126,9 @@ describe('DiffFileHeader component', () => {
it('when collapseIcon is clicked emits toggleFile', () => { it('when collapseIcon is clicked emits toggleFile', () => {
createComponent({ collapsible: true }); createComponent({ collapsible: true });
findCollapseIcon().vm.$emit('click', new Event('click')); findCollapseIcon().vm.$emit('click', new Event('click'));
expect(wrapper.emitted().toggleFile).toBeDefined(); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().toggleFile).toBeDefined();
});
}); });
it('when other element in header is clicked does not emits toggleFile', () => { it('when other element in header is clicked does not emits toggleFile', () => {
...@@ -200,7 +202,9 @@ describe('DiffFileHeader component', () => { ...@@ -200,7 +202,9 @@ describe('DiffFileHeader component', () => {
addMergeRequestButtons: true, addMergeRequestButtons: true,
}); });
wrapper.find(EditButton).vm.$emit('showForkMessage'); wrapper.find(EditButton).vm.$emit('showForkMessage');
expect(wrapper.emitted().showForkMessage).toBeDefined(); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().showForkMessage).toBeDefined();
});
}); });
it('for mode_changed file mode displays mode changes', () => { it('for mode_changed file mode displays mode changes', () => {
......
...@@ -65,7 +65,9 @@ describe('IDE pipeline stage', () => { ...@@ -65,7 +65,9 @@ describe('IDE pipeline stage', () => {
.findAll(Item) .findAll(Item)
.at(0) .at(0)
.vm.$emit('clickViewLog', job); .vm.$emit('clickViewLog', job);
expect(wrapper.emitted().clickViewLog[0][0]).toBe(job); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().clickViewLog[0][0]).toBe(job);
});
}); });
it('renders stage details & icon', () => { it('renders stage details & icon', () => {
......
...@@ -119,17 +119,26 @@ describe('DiscussionNotes', () => { ...@@ -119,17 +119,26 @@ describe('DiscussionNotes', () => {
it('emits deleteNote when first note emits handleDeleteNote', () => { it('emits deleteNote when first note emits handleDeleteNote', () => {
findNoteAtIndex(0).vm.$emit('handleDeleteNote'); findNoteAtIndex(0).vm.$emit('handleDeleteNote');
expect(wrapper.emitted().deleteNote).toBeTruthy();
return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().deleteNote).toBeTruthy();
});
}); });
it('emits startReplying when first note emits startReplying', () => { it('emits startReplying when first note emits startReplying', () => {
findNoteAtIndex(0).vm.$emit('startReplying'); findNoteAtIndex(0).vm.$emit('startReplying');
expect(wrapper.emitted().startReplying).toBeTruthy();
return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().startReplying).toBeTruthy();
});
}); });
it('emits deleteNote when second note emits handleDeleteNote', () => { it('emits deleteNote when second note emits handleDeleteNote', () => {
findNoteAtIndex(1).vm.$emit('handleDeleteNote'); findNoteAtIndex(1).vm.$emit('handleDeleteNote');
expect(wrapper.emitted().deleteNote).toBeTruthy();
return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().deleteNote).toBeTruthy();
});
}); });
}); });
...@@ -142,7 +151,10 @@ describe('DiscussionNotes', () => { ...@@ -142,7 +151,10 @@ describe('DiscussionNotes', () => {
it('emits deleteNote when first note emits handleDeleteNote', () => { it('emits deleteNote when first note emits handleDeleteNote', () => {
note.vm.$emit('handleDeleteNote'); note.vm.$emit('handleDeleteNote');
expect(wrapper.emitted().deleteNote).toBeTruthy();
return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().deleteNote).toBeTruthy();
});
}); });
}); });
}); });
......
...@@ -118,8 +118,10 @@ describe('Repository last commit component', () => { ...@@ -118,8 +118,10 @@ describe('Repository last commit component', () => {
vm.find('.text-expander').vm.$emit('click'); vm.find('.text-expander').vm.$emit('click');
expect(vm.find('.commit-row-description').isVisible()).toBe(true); return vm.vm.$nextTick().then(() => {
expect(vm.find('.text-expander').classes('open')).toBe(true); expect(vm.find('.commit-row-description').isVisible()).toBe(true);
expect(vm.find('.text-expander').classes('open')).toBe(true);
});
}); });
it('renders the signature HTML as returned by the backend', () => { it('renders the signature HTML as returned by the backend', () => {
......
...@@ -56,6 +56,8 @@ describe('Commits message dropdown component', () => { ...@@ -56,6 +56,8 @@ describe('Commits message dropdown component', () => {
it('should emit a commit title on selecting commit', () => { it('should emit a commit title on selecting commit', () => {
findFirstDropdownElement().vm.$emit('click'); findFirstDropdownElement().vm.$emit('click');
expect(wrapper.emitted().input[0]).toEqual(['Update test.txt']); return wrapper.vm.$nextTick().then(() => {
expect(wrapper.emitted().input[0]).toEqual(['Update test.txt']);
});
}); });
}); });
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment