diff options
Diffstat (limited to 'spec/frontend/ide/stores/modules/editor/setup_spec.js')
-rw-r--r-- | spec/frontend/ide/stores/modules/editor/setup_spec.js | 44 |
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: {}, + }); + }); +}); |