Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-10-22 15:08:41 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-10-22 15:08:41 +0300
commitedd183a633915eacd9b73cab43ea839a4cd42bf6 (patch)
treee950000a90a3ebf05d135b5add8e569fafffbd38 /spec/frontend/static_site_editor
parent9dab4d7b6492628eb9222f14954fdd8889bd6e34 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/static_site_editor')
-rw-r--r--spec/frontend/static_site_editor/components/edit_meta_controls_spec.js12
-rw-r--r--spec/frontend/static_site_editor/components/edit_meta_modal_spec.js51
2 files changed, 41 insertions, 22 deletions
diff --git a/spec/frontend/static_site_editor/components/edit_meta_controls_spec.js b/spec/frontend/static_site_editor/components/edit_meta_controls_spec.js
index 191f91be076..3f99768aa08 100644
--- a/spec/frontend/static_site_editor/components/edit_meta_controls_spec.js
+++ b/spec/frontend/static_site_editor/components/edit_meta_controls_spec.js
@@ -1,6 +1,5 @@
import { shallowMount } from '@vue/test-utils';
-import { useLocalStorageSpy } from 'helpers/local_storage_helper';
import { GlFormInput, GlFormTextarea } from '@gitlab/ui';
import EditMetaControls from '~/static_site_editor/components/edit_meta_controls.vue';
@@ -8,8 +7,6 @@ import EditMetaControls from '~/static_site_editor/components/edit_meta_controls
import { mergeRequestMeta } from '../mock_data';
describe('~/static_site_editor/components/edit_meta_controls.vue', () => {
- useLocalStorageSpy();
-
let wrapper;
let mockSelect;
let mockGlFormInputTitleInstance;
@@ -86,14 +83,5 @@ describe('~/static_site_editor/components/edit_meta_controls.vue', () => {
expect(wrapper.emitted('updateSettings')[0][0]).toMatchObject(newSettings);
});
-
- it('should remember the input changes', () => {
- findGlFormInputTitle().vm.$emit('input', newTitle);
- findGlFormTextAreaDescription().vm.$emit('input', newDescription);
-
- const newSettings = { title: newTitle, description: newDescription };
-
- expect(localStorage.setItem).toHaveBeenCalledWith(storageKey, JSON.stringify(newSettings));
- });
});
});
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
index 7a5685033f3..da4c225d25b 100644
--- a/spec/frontend/static_site_editor/components/edit_meta_modal_spec.js
+++ b/spec/frontend/static_site_editor/components/edit_meta_modal_spec.js
@@ -1,13 +1,15 @@
import { shallowMount } from '@vue/test-utils';
-
import { GlModal } from '@gitlab/ui';
-
+import { useLocalStorageSpy } from 'helpers/local_storage_helper';
+import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
import EditMetaModal from '~/static_site_editor/components/edit_meta_modal.vue';
import EditMetaControls from '~/static_site_editor/components/edit_meta_controls.vue';
-
+import { MR_META_LOCAL_STORAGE_KEY } from '~/static_site_editor/constants';
import { sourcePath, mergeRequestMeta } from '../mock_data';
describe('~/static_site_editor/components/edit_meta_modal.vue', () => {
+ useLocalStorageSpy();
+
let wrapper;
let resetCachedEditable;
let mockEditMetaControlsInstance;
@@ -30,6 +32,11 @@ describe('~/static_site_editor/components/edit_meta_modal.vue', () => {
const findGlModal = () => wrapper.find(GlModal);
const findEditMetaControls = () => wrapper.find(EditMetaControls);
+ const findLocalStorageSync = () => wrapper.find(LocalStorageSync);
+
+ beforeEach(() => {
+ localStorage.setItem(MR_META_LOCAL_STORAGE_KEY);
+ });
beforeEach(() => {
buildWrapper();
@@ -43,6 +50,16 @@ describe('~/static_site_editor/components/edit_meta_modal.vue', () => {
wrapper = null;
});
+ it('initializes initial merge request meta with local storage data', async () => {
+ const localStorageMeta = { title: 'stored title', description: 'stored description' };
+
+ findLocalStorageSync().vm.$emit('input', localStorageMeta);
+
+ await wrapper.vm.$nextTick();
+
+ expect(findEditMetaControls().props()).toEqual(localStorageMeta);
+ });
+
it('renders the modal', () => {
expect(findGlModal().exists()).toBe(true);
});
@@ -63,18 +80,32 @@ describe('~/static_site_editor/components/edit_meta_modal.vue', () => {
expect(findEditMetaControls().props('description')).toBe(description);
});
- it('emits the primary event with mergeRequestMeta', () => {
- findGlModal().vm.$emit('primary', mergeRequestMeta);
- expect(wrapper.emitted('primary')).toEqual([[mergeRequestMeta]]);
- });
+ describe('when save button is clicked', () => {
+ beforeEach(() => {
+ findGlModal().vm.$emit('primary', mergeRequestMeta);
+ });
- it('calls resetCachedEditable on EditMetaControls when primary emits', () => {
- findGlModal().vm.$emit('primary', mergeRequestMeta);
- expect(mockEditMetaControlsInstance.resetCachedEditable).toHaveBeenCalled();
+ 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]]);
+ });
});
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 wrapper.vm.$nextTick();
+
+ expect(findLocalStorageSync().props('value')).toEqual(newMeta);
+ });
});