diff options
Diffstat (limited to 'spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js')
-rw-r--r-- | spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js b/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js index fbef4aa08eb..f824dab9ae1 100644 --- a/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js +++ b/spec/frontend/ci/pipelines_page/components/empty_state/pipelines_ci_templates_spec.js @@ -1,4 +1,5 @@ import '~/commons'; +import { GlButton } from '@gitlab/ui'; import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import { mockTracking, unmockTracking } from 'helpers/tracking_helper'; import PipelinesCiTemplates from '~/ci/pipelines_page/components/empty_state/pipelines_ci_templates.vue'; @@ -14,12 +15,15 @@ describe('Pipelines CI Templates', () => { return shallowMountExtended(PipelinesCiTemplates, { provide: { pipelineEditorPath, + showJenkinsCiPrompt: false, ...propsData, }, stubs, }); }; + const findMigrateFromJenkinsPrompt = () => wrapper.findByTestId('migrate-from-jenkins-prompt'); + const findMigrationPlanBtn = () => findMigrateFromJenkinsPrompt().findComponent(GlButton); const findTestTemplateLink = () => wrapper.findByTestId('test-template-link'); const findCiTemplates = () => wrapper.findComponent(CiTemplates); @@ -34,6 +38,27 @@ describe('Pipelines CI Templates', () => { ); expect(findCiTemplates().exists()).toBe(true); }); + + it('does not show migrate from jenkins prompt', () => { + expect(findMigrateFromJenkinsPrompt().exists()).toBe(false); + }); + + describe('when Jenkinsfile is detected', () => { + beforeEach(() => { + wrapper = createWrapper({ showJenkinsCiPrompt: true }); + }); + + it('shows migrate from jenkins prompt', () => { + expect(findMigrateFromJenkinsPrompt().exists()).toBe(true); + }); + + it('opens correct link in new tab after clicking migration plan CTA', () => { + expect(findMigrationPlanBtn().attributes('href')).toBe( + '/help/ci/migration/plan_a_migration', + ); + expect(findMigrationPlanBtn().attributes('target')).toBe('_blank'); + }); + }); }); describe('tracking', () => { @@ -54,5 +79,27 @@ describe('Pipelines CI Templates', () => { label: 'Getting-Started', }); }); + + describe('when Jenkinsfile detected', () => { + beforeEach(() => { + wrapper = createWrapper({ showJenkinsCiPrompt: true }); + }); + + it('creates render event on page load', () => { + expect(trackingSpy).toHaveBeenCalledTimes(1); + expect(trackingSpy).toHaveBeenCalledWith(undefined, 'render', { + label: 'migrate_from_jenkins_prompt', + }); + }); + + it('sends an event when migration plan is clicked', () => { + findMigrationPlanBtn().vm.$emit('click'); + + expect(trackingSpy).toHaveBeenCalledTimes(2); + expect(trackingSpy).toHaveBeenCalledWith(undefined, 'template_clicked', { + label: 'migrate_from_jenkins_prompt', + }); + }); + }); }); }); |