diff options
Diffstat (limited to 'spec/frontend/projects/experiment_new_project_creation/components/welcome_spec.js')
-rw-r--r-- | spec/frontend/projects/experiment_new_project_creation/components/welcome_spec.js | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/spec/frontend/projects/experiment_new_project_creation/components/welcome_spec.js b/spec/frontend/projects/experiment_new_project_creation/components/welcome_spec.js index f26d1a6d2a3..9fd1230806e 100644 --- a/spec/frontend/projects/experiment_new_project_creation/components/welcome_spec.js +++ b/spec/frontend/projects/experiment_new_project_creation/components/welcome_spec.js @@ -1,8 +1,13 @@ import { shallowMount } from '@vue/test-utils'; +import { nextTick } from 'vue'; import { mockTracking } from 'helpers/tracking_helper'; +import { TRACKING_CONTEXT_SCHEMA } from '~/experimentation/constants'; +import { getExperimentData } from '~/experimentation/utils'; import NewProjectPushTipPopover from '~/projects/experiment_new_project_creation/components/new_project_push_tip_popover.vue'; import WelcomePage from '~/projects/experiment_new_project_creation/components/welcome.vue'; +jest.mock('~/experimentation/utils', () => ({ getExperimentData: jest.fn() })); + describe('Welcome page', () => { let wrapper; let trackingSpy; @@ -14,6 +19,7 @@ describe('Welcome page', () => { beforeEach(() => { trackingSpy = mockTracking('_category_', document, jest.spyOn); trackingSpy.mockImplementation(() => {}); + getExperimentData.mockReturnValue(undefined); }); afterEach(() => { @@ -22,14 +28,35 @@ describe('Welcome page', () => { wrapper = null; }); - it('tracks link clicks', () => { + it('tracks link clicks', async () => { createComponent({ panels: [{ name: 'test', href: '#' }] }); - wrapper.find('a').trigger('click'); + const link = wrapper.find('a'); + link.trigger('click'); + await nextTick(); return wrapper.vm.$nextTick().then(() => { expect(trackingSpy).toHaveBeenCalledWith(undefined, 'click_tab', { label: 'test' }); }); }); + it('adds new_repo experiment data if in experiment', async () => { + const mockExperimentData = 'data'; + getExperimentData.mockReturnValue(mockExperimentData); + + createComponent({ panels: [{ name: 'test', href: '#' }] }); + const link = wrapper.find('a'); + link.trigger('click'); + await nextTick(); + return wrapper.vm.$nextTick().then(() => { + expect(trackingSpy).toHaveBeenCalledWith(undefined, 'click_tab', { + label: 'test', + context: { + data: mockExperimentData, + schema: TRACKING_CONTEXT_SCHEMA, + }, + }); + }); + }); + it('renders new project push tip popover', () => { createComponent({ panels: [{ name: 'test', href: '#' }] }); |