2020-03-04 09:08:20 +00:00
|
|
|
import { shallowMount } from '@vue/test-utils';
|
|
|
|
import Popover from '~/blob/suggest_gitlab_ci_yml/components/popover.vue';
|
|
|
|
import Cookies from 'js-cookie';
|
2020-03-09 18:07:59 +00:00
|
|
|
import * as utils from '~/lib/utils/common_utils';
|
2020-03-04 09:08:20 +00:00
|
|
|
|
2020-03-09 18:07:59 +00:00
|
|
|
jest.mock('~/lib/utils/common_utils', () => ({
|
|
|
|
...jest.requireActual('~/lib/utils/common_utils'),
|
|
|
|
scrollToElement: jest.fn(),
|
|
|
|
}));
|
|
|
|
|
|
|
|
const target = 'gitlab-ci-yml-selector';
|
2020-03-04 09:08:20 +00:00
|
|
|
const dismissKey = 'suggest_gitlab_ci_yml_99';
|
2020-03-09 18:07:59 +00:00
|
|
|
const defaultTrackLabel = 'suggest_gitlab_ci_yml';
|
2020-03-04 09:08:20 +00:00
|
|
|
|
|
|
|
describe('Suggest gitlab-ci.yml Popover', () => {
|
|
|
|
let wrapper;
|
|
|
|
|
2020-03-09 18:07:59 +00:00
|
|
|
function createWrapper(trackLabel) {
|
2020-03-04 09:08:20 +00:00
|
|
|
wrapper = shallowMount(Popover, {
|
|
|
|
propsData: {
|
2020-03-09 18:07:59 +00:00
|
|
|
target,
|
|
|
|
trackLabel,
|
2020-03-04 09:08:20 +00:00
|
|
|
dismissKey,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
afterEach(() => {
|
|
|
|
wrapper.destroy();
|
|
|
|
wrapper = null;
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('when no dismiss cookie is set', () => {
|
|
|
|
beforeEach(() => {
|
2020-03-09 18:07:59 +00:00
|
|
|
createWrapper(defaultTrackLabel);
|
2020-03-04 09:08:20 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('sets popoverDismissed to false', () => {
|
|
|
|
expect(wrapper.vm.popoverDismissed).toEqual(false);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('when the dismiss cookie is set', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
Cookies.set(dismissKey, true);
|
2020-03-09 18:07:59 +00:00
|
|
|
createWrapper(defaultTrackLabel);
|
2020-03-04 09:08:20 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('sets popoverDismissed to true', () => {
|
|
|
|
expect(wrapper.vm.popoverDismissed).toEqual(true);
|
|
|
|
});
|
2020-03-09 18:07:59 +00:00
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
Cookies.remove(dismissKey);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('when the popover is mounted with the trackLabel of the Confirm button popover at the bottom of the page', () => {
|
|
|
|
it('calls scrollToElement so that the Confirm button and popover will be in sight', () => {
|
|
|
|
const scrollToElementSpy = jest.spyOn(utils, 'scrollToElement');
|
|
|
|
const commitTrackLabel = 'suggest_commit_first_project_gitlab_ci_yml';
|
|
|
|
|
|
|
|
createWrapper(commitTrackLabel);
|
|
|
|
|
|
|
|
expect(scrollToElementSpy).toHaveBeenCalled();
|
|
|
|
});
|
2020-03-04 09:08:20 +00:00
|
|
|
});
|
|
|
|
});
|