summaryrefslogtreecommitdiff
path: root/spec/frontend/static_site_editor/components/edit_meta_modal_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/static_site_editor/components/edit_meta_modal_spec.js')
-rw-r--r--spec/frontend/static_site_editor/components/edit_meta_modal_spec.js172
1 files changed, 0 insertions, 172 deletions
diff --git a/spec/frontend/static_site_editor/components/edit_meta_modal_spec.js b/spec/frontend/static_site_editor/components/edit_meta_modal_spec.js
deleted file mode 100644
index bf3f8b7f571..00000000000
--- a/spec/frontend/static_site_editor/components/edit_meta_modal_spec.js
+++ /dev/null
@@ -1,172 +0,0 @@
-import { GlModal } from '@gitlab/ui';
-import { shallowMount } from '@vue/test-utils';
-import MockAdapter from 'axios-mock-adapter';
-import { nextTick } from 'vue';
-import { useLocalStorageSpy } from 'helpers/local_storage_helper';
-import axios from '~/lib/utils/axios_utils';
-import EditMetaControls from '~/static_site_editor/components/edit_meta_controls.vue';
-import EditMetaModal from '~/static_site_editor/components/edit_meta_modal.vue';
-import { MR_META_LOCAL_STORAGE_KEY } from '~/static_site_editor/constants';
-import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
-import {
- sourcePath,
- mergeRequestMeta,
- mergeRequestTemplates,
- project as namespaceProject,
-} from '../mock_data';
-
-describe('~/static_site_editor/components/edit_meta_modal.vue', () => {
- useLocalStorageSpy();
-
- let wrapper;
- let mockAxios;
- const { title, description } = mergeRequestMeta;
- const [namespace, project] = namespaceProject.split('/');
-
- const buildWrapper = (propsData = {}, data = {}) => {
- wrapper = shallowMount(EditMetaModal, {
- propsData: {
- sourcePath,
- namespace,
- project,
- ...propsData,
- },
- data: () => data,
- });
- };
-
- const buildMockAxios = () => {
- mockAxios = new MockAdapter(axios);
- const templatesMergeRequestsPath = `templates/merge_request`;
- mockAxios
- .onGet(`${namespace}/${project}/${templatesMergeRequestsPath}`)
- .reply(200, mergeRequestTemplates);
- };
-
- const buildMockRefs = () => {
- wrapper.vm.$refs.editMetaControls = { resetCachedEditable: jest.fn() };
- };
-
- const findGlModal = () => wrapper.find(GlModal);
- const findEditMetaControls = () => wrapper.find(EditMetaControls);
- const findLocalStorageSync = () => wrapper.find(LocalStorageSync);
-
- beforeEach(async () => {
- localStorage.setItem(MR_META_LOCAL_STORAGE_KEY);
-
- buildMockAxios();
- buildWrapper();
- buildMockRefs();
-
- await nextTick();
- });
-
- afterEach(() => {
- mockAxios.restore();
-
- wrapper.destroy();
- wrapper = null;
- });
-
- it('initializes initial merge request meta with local storage data', async () => {
- const localStorageMeta = {
- title: 'stored title',
- description: 'stored description',
- templates: null,
- currentTemplate: null,
- };
-
- findLocalStorageSync().vm.$emit('input', localStorageMeta);
-
- await nextTick();
-
- expect(findEditMetaControls().props()).toEqual(localStorageMeta);
- });
-
- it('renders the modal', () => {
- expect(findGlModal().exists()).toBe(true);
- });
-
- it('renders the edit meta controls', () => {
- expect(findEditMetaControls().exists()).toBe(true);
- });
-
- it('contains the sourcePath in the title', () => {
- expect(findEditMetaControls().props('title')).toContain(sourcePath);
- });
-
- it('forwards the title prop', () => {
- expect(findEditMetaControls().props('title')).toBe(title);
- });
-
- it('forwards the description prop', () => {
- expect(findEditMetaControls().props('description')).toBe(description);
- });
-
- it('forwards the templates prop', () => {
- expect(findEditMetaControls().props('templates')).toBe(null);
- });
-
- it('forwards the currentTemplate prop', () => {
- expect(findEditMetaControls().props('currentTemplate')).toBe(null);
- });
-
- describe('when save button is clicked', () => {
- beforeEach(() => {
- findGlModal().vm.$emit('primary', mergeRequestMeta);
- });
-
- it('removes merge request meta from local storage', () => {
- expect(findLocalStorageSync().props().clear).toBe(true);
- });
-
- it('emits the primary event with mergeRequestMeta', () => {
- expect(wrapper.emitted('primary')).toEqual([[mergeRequestMeta]]);
- });
- });
-
- describe('when templates exist', () => {
- const template1 = mergeRequestTemplates[0];
-
- beforeEach(() => {
- buildWrapper({}, { templates: mergeRequestTemplates, currentTemplate: null });
- });
-
- it('sets the currentTemplate on the changeTemplate event', async () => {
- findEditMetaControls().vm.$emit('changeTemplate', template1);
-
- await nextTick();
-
- expect(findEditMetaControls().props().currentTemplate).toBe(template1);
-
- findEditMetaControls().vm.$emit('changeTemplate', null);
-
- await nextTick();
-
- expect(findEditMetaControls().props().currentTemplate).toBe(null);
- });
-
- it('updates the description on the changeTemplate event', async () => {
- findEditMetaControls().vm.$emit('changeTemplate', template1);
-
- await nextTick();
-
- expect(findEditMetaControls().props().description).toEqual(template1.content);
- });
- });
-
- it('emits the hide event', () => {
- findGlModal().vm.$emit('hide');
- expect(wrapper.emitted('hide')).toEqual([[]]);
- });
-
- it('stores merge request meta changes in local storage when changes happen', async () => {
- const newMeta = { title: 'new title', description: 'new description' };
-
- findEditMetaControls().vm.$emit('updateSettings', newMeta);
-
- await nextTick();
-
- expect(findLocalStorageSync().props('value')).toEqual(newMeta);
- });
-});