summaryrefslogtreecommitdiff
path: root/spec/frontend/ide/stores/modules/editor/setup_spec.js
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: {},
+ });
+ });
+});