diff options
Diffstat (limited to 'spec/javascripts/ide/components/new_dropdown/modal_spec.js')
-rw-r--r-- | spec/javascripts/ide/components/new_dropdown/modal_spec.js | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/spec/javascripts/ide/components/new_dropdown/modal_spec.js b/spec/javascripts/ide/components/new_dropdown/modal_spec.js index d94cc1a8faa..0556feae46a 100644 --- a/spec/javascripts/ide/components/new_dropdown/modal_spec.js +++ b/spec/javascripts/ide/components/new_dropdown/modal_spec.js @@ -18,6 +18,9 @@ describe('new file modal component', () => { store.state.entryModal = { type, path: '', + entry: { + path: '', + }, }; vm = createComponentWithStore(Component, store).$mount(); @@ -74,6 +77,7 @@ describe('new file modal component', () => { entry: { name: 'test', type: 'blob', + path: 'test-path', }, }; @@ -97,7 +101,7 @@ describe('new file modal component', () => { describe('entryName', () => { it('returns entries name', () => { - expect(vm.entryName).toBe('test'); + expect(vm.entryName).toBe('test-path'); }); it('updated name', () => { @@ -105,6 +109,67 @@ describe('new file modal component', () => { expect(vm.entryName).toBe('index.js'); }); + + it('removes leading/trailing spaces when found in the new name', () => { + vm.entryName = ' index.js '; + + expect(vm.entryName).toBe('index.js'); + }); + + it('does not remove internal spaces in the file name', () => { + vm.entryName = ' In Praise of Idleness.txt '; + + expect(vm.entryName).toBe('In Praise of Idleness.txt'); + }); + }); + }); + + describe('submitForm', () => { + it('throws an error when target entry exists', () => { + const store = createStore(); + store.state.entryModal = { + type: 'rename', + path: 'test-path/test', + entry: { + name: 'test', + type: 'blob', + path: 'test-path/test', + }, + }; + store.state.entries = { + 'test-path/test': { + name: 'test', + deleted: false, + }, + }; + + vm = createComponentWithStore(Component, store).$mount(); + const flashSpy = spyOnDependency(modal, 'flash'); + vm.submitForm(); + + expect(flashSpy).toHaveBeenCalled(); + }); + + it('calls createTempEntry when target path does not exist', () => { + const store = createStore(); + store.state.entryModal = { + type: 'rename', + path: 'test-path/test', + entry: { + name: 'test', + type: 'blob', + path: 'test-path1/test', + }, + }; + + vm = createComponentWithStore(Component, store).$mount(); + spyOn(vm, 'createTempEntry').and.callFake(() => Promise.resolve()); + vm.submitForm(); + + expect(vm.createTempEntry).toHaveBeenCalledWith({ + name: 'test-path1', + type: 'tree', + }); }); }); }); |