diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-31 15:13:01 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-31 15:13:01 +0300 |
commit | 3034c7e6aa99d21c3d9fa1df01f60fdd3f32d914 (patch) | |
tree | 424f5a291abf1a93ff9870667ecb301b899972fc /spec/frontend/surveys | |
parent | 6170bdc060501ecf6f817a530b3dc9f2e39ad4c3 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/surveys')
-rw-r--r-- | spec/frontend/surveys/merge_request_performance/app_spec.js | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/spec/frontend/surveys/merge_request_performance/app_spec.js b/spec/frontend/surveys/merge_request_performance/app_spec.js index 1d84685bf88..af91d8aeb6b 100644 --- a/spec/frontend/surveys/merge_request_performance/app_spec.js +++ b/spec/frontend/surveys/merge_request_performance/app_spec.js @@ -6,6 +6,17 @@ import { makeMockUserCalloutDismisser } from 'helpers/mock_user_callout_dismisse import MergeRequestExperienceSurveyApp from '~/surveys/merge_request_experience/app.vue'; import SatisfactionRate from '~/surveys/components/satisfaction_rate.vue'; +const createRenderTrackedArguments = () => [ + undefined, + 'survey:mr_experience', + { + label: 'render', + extra: { + accountAge: 0, + }, + }, +]; + describe('MergeRequestExperienceSurveyApp', () => { let trackingSpy; let wrapper; @@ -24,6 +35,7 @@ describe('MergeRequestExperienceSurveyApp', () => { dismiss, shouldShowCallout, }); + trackingSpy = mockTracking(undefined, undefined, jest.spyOn); wrapper = shallowMountExtended(MergeRequestExperienceSurveyApp, { propsData: { accountAge: 0, @@ -33,9 +45,12 @@ describe('MergeRequestExperienceSurveyApp', () => { GlSprintf, }, }); - trackingSpy = mockTracking(undefined, wrapper.element, jest.spyOn); }; + beforeEach(() => { + localStorage.clear(); + }); + describe('when user callout is visible', () => { beforeEach(() => { createWrapper(); @@ -47,6 +62,16 @@ describe('MergeRequestExperienceSurveyApp', () => { expect(wrapper.emitted().close).toBe(undefined); }); + it('tracks render once', async () => { + expect(trackingSpy).toHaveBeenCalledWith(...createRenderTrackedArguments()); + }); + + it("doesn't track subsequent renders", async () => { + createWrapper(); + expect(trackingSpy).toHaveBeenCalledWith(...createRenderTrackedArguments()); + expect(trackingSpy).toHaveBeenCalledTimes(1); + }); + describe('when close button clicked', () => { beforeEach(() => { findCloseButton().vm.$emit('click'); @@ -68,6 +93,15 @@ describe('MergeRequestExperienceSurveyApp', () => { }, }); }); + + it('tracks subsequent renders', async () => { + createWrapper(); + expect(trackingSpy.mock.calls).toEqual([ + createRenderTrackedArguments(), + expect.anything(), + createRenderTrackedArguments(), + ]); + }); }); it('applies correct feature name for user callout', () => { @@ -148,6 +182,10 @@ describe('MergeRequestExperienceSurveyApp', () => { it('emits close event', async () => { expect(wrapper.emitted()).toMatchObject({ close: [[]] }); }); + + it("doesn't track anything", async () => { + expect(trackingSpy).toHaveBeenCalledTimes(0); + }); }); describe('when Escape key is pressed', () => { |