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:
Diffstat (limited to 'spec/frontend/ide/stores/modules/editor/setup_spec.js')
-rw-r--r--spec/frontend/ide/stores/modules/editor/setup_spec.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/frontend/ide/stores/modules/editor/setup_spec.js b/spec/frontend/ide/stores/modules/editor/setup_spec.js
new file mode 100644
index 00000000000..71b5d7590c5
--- /dev/null
+++ b/spec/frontend/ide/stores/modules/editor/setup_spec.js
@@ -0,0 +1,44 @@
+import Vuex from 'vuex';
+import eventHub from '~/ide/eventhub';
+import { createStoreOptions } from '~/ide/stores';
+import { setupFileEditorsSync } from '~/ide/stores/modules/editor/setup';
+import { createTriggerRenamePayload } from '../../../helpers';
+
+describe('~/ide/stores/modules/editor/setup', () => {
+ let store;
+
+ beforeEach(() => {
+ store = new Vuex.Store(createStoreOptions());
+ store.state.entries = {
+ foo: {},
+ bar: {},
+ };
+ store.state.editor.fileEditors = {
+ foo: {},
+ bizz: {},
+ };
+
+ setupFileEditorsSync(store);
+ });
+
+ it('when files change is emitted, removes unused fileEditors', () => {
+ eventHub.$emit('ide.files.change');
+
+ expect(store.state.entries).toEqual({
+ foo: {},
+ bar: {},
+ });
+ expect(store.state.editor.fileEditors).toEqual({
+ foo: {},
+ });
+ });
+
+ it('when files rename is emitted, renames fileEditor', () => {
+ eventHub.$emit('ide.files.change', createTriggerRenamePayload('foo', 'foo_new'));
+
+ expect(store.state.editor.fileEditors).toEqual({
+ foo_new: {},
+ bizz: {},
+ });
+ });
+});