From 00e434e1422c3b25e0a7455c587fdb8728e8dc76 Mon Sep 17 00:00:00 2001 From: lana-k Date: Sun, 2 May 2021 14:09:02 +0200 Subject: [PATCH] fix loading db after csv: new tab is not opened now --- src/components/DbUploader.vue | 1 + tests/components/DbUploader.spec.js | 45 +++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/components/DbUploader.vue b/src/components/DbUploader.vue index 75a0cb8..cce3422 100644 --- a/src/components/DbUploader.vue +++ b/src/components/DbUploader.vue @@ -233,6 +233,7 @@ export default { this.$modal.hide('parse') const tabId = await this.$store.dispatch('addTab', { query: 'select * from csv_import' }) this.$store.commit('setCurrentTabId', tabId) + this.importCsvCompleted = false } if (this.$route.path !== '/editor') { this.$router.push('/editor') diff --git a/tests/components/DbUploader.spec.js b/tests/components/DbUploader.spec.js index c0c2b3f..5d46da2 100644 --- a/tests/components/DbUploader.spec.js +++ b/tests/components/DbUploader.spec.js @@ -838,4 +838,49 @@ describe('DbUploader.vue import CSV', () => { expect(newDb.shutDown.calledOnce).to.equal(true) expect(wrapper.find('[data-modal="parse"]').exists()).to.equal(false) }) + + it("doesn't open new tab when load db after importing CSV", async () => { + fu.getFileFromUser.onCall(0).resolves({ type: 'text/csv', name: 'foo.csv' }) + fu.getFileFromUser.onCall(1).resolves({ type: 'application/x-sqlite3', name: 'bar.sqlite3' }) + sinon.stub(csv, 'parse').resolves({ + delimiter: '|', + data: { + columns: ['col1', 'col2'], + values: [ + [1, 'foo'] + ] + }, + hasErrors: false, + messages: [] + }) + + const schema = {} + const newDb = { + createDb: sinon.stub().resolves(schema), + createProgressCounter: sinon.stub().returns(1), + deleteProgressCounter: sinon.stub(), + loadDb: sinon.stub().resolves() + } + sinon.stub(database, 'getNewDatabase').returns(newDb) + + await wrapper.find('.drop-area').trigger('click') + await csv.parse.returnValues[0] + await wrapper.vm.animationPromise + await wrapper.vm.$nextTick() + + await wrapper.find('#csv-import').trigger('click') + await csv.parse.returnValues[1] + await wrapper.vm.$nextTick() + + await wrapper.find('#csv-finish').trigger('click') + + expect(actions.addTab.calledOnce).to.equal(true) + await actions.addTab.returnValues[0] + expect(mutations.setCurrentTabId.calledOnceWith(state, newTabId)).to.equal(true) + + await wrapper.find('.drop-area').trigger('click') + await newDb.loadDb.returnValues[0] + expect(actions.addTab.calledOnce).to.equal(true) + expect(mutations.setCurrentTabId.calledOnce).to.equal(true) + }) })