1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-06 10:08:52 +08:00
This commit is contained in:
lana-k
2025-01-12 22:00:48 +01:00
parent f55a8caa92
commit 108d96a753
9 changed files with 63 additions and 62 deletions

View File

@@ -22,7 +22,7 @@ export default {
handler () { handler () {
storedInquiries.updateStorage(this.inquiries) storedInquiries.updateStorage(this.inquiries)
} }
} }
} }
} }
</script> </script>

View File

@@ -52,19 +52,19 @@ export default {
inquiry => !inquiryIdSet.has(inquiry.id) inquiry => !inquiryIdSet.has(inquiry.id)
) )
// Close deleted inquiries if it was opened // Close deleted inquiries if it was opened
const tabs = state.tabs const tabs = state.tabs
let i = tabs.length - 1 let i = tabs.length - 1
while (i > -1) { while (i > -1) {
if (inquiryIdSet.has(tabs[i].id)) { if (inquiryIdSet.has(tabs[i].id)) {
commit('deleteTab', tabs[i]) commit('deleteTab', tabs[i])
} }
i-- i--
} }
}, },
renameInquiry ({ state, commit }, {inquiryId, newName}) { renameInquiry ({ state, commit }, { inquiryId, newName }) {
const renamingInquiry = state.inquiries const renamingInquiry = state.inquiries
.find(inquiry => inquiry.id === inquiryId) .find(inquiry => inquiry.id === inquiryId)
renamingInquiry.name = newName renamingInquiry.name = newName

View File

@@ -332,7 +332,7 @@ export default {
return return
} }
this.$store.dispatch('renameInquiry', { this.$store.dispatch('renameInquiry', {
inquiryId: this.processedInquiryId, inquiryId: this.processedInquiryId,
newName: this.newName newName: this.newName
}) })

View File

@@ -133,8 +133,8 @@ export default {
// Save inquiry // Save inquiry
const value = await this.$store.dispatch('saveInquiry', { const value = await this.$store.dispatch('saveInquiry', {
inquiryTab:this.currentInquiry, inquiryTab: this.currentInquiry,
newName:this.name newName: this.name
}) })
// Update tab in store // Update tab in store

View File

@@ -13,7 +13,7 @@ describe('App.vue', () => {
it('Gets inquiries', () => { it('Gets inquiries', () => {
sinon.stub(storedInquiries, 'getStoredInquiries').returns([ sinon.stub(storedInquiries, 'getStoredInquiries').returns([
{id: 1}, {id: 2}, {id: 3} { id: 1 }, { id: 2 }, { id: 3 }
]) ])
const state = { const state = {
predefinedInquiries: [], predefinedInquiries: [],
@@ -22,16 +22,15 @@ describe('App.vue', () => {
const store = new Vuex.Store({ state, mutations }) const store = new Vuex.Store({ state, mutations })
shallowMount(App, { store, stubs: ['router-view'] }) shallowMount(App, { store, stubs: ['router-view'] })
expect(state.inquiries).to.eql([{id: 1}, {id: 2}, {id: 3}]) expect(state.inquiries).to.eql([{ id: 1 }, { id: 2 }, { id: 3 }])
}) })
it('Updates inquiries when they change in store', async () => { it('Updates inquiries when they change in store', async () => {
sinon.stub(storedInquiries, 'getStoredInquiries').returns([ sinon.stub(storedInquiries, 'getStoredInquiries').returns([
{id: 1, name: 'foo'}, {id: 2, name: 'baz'}, {id: 3, name: 'bar'} { id: 1, name: 'foo' }, { id: 2, name: 'baz' }, { id: 3, name: 'bar' }
]) ])
sinon.spy(storedInquiries, 'updateStorage') sinon.spy(storedInquiries, 'updateStorage')
const state = { const state = {
predefinedInquiries: [], predefinedInquiries: [],
inquiries: [] inquiries: []
@@ -39,13 +38,15 @@ describe('App.vue', () => {
const store = new Vuex.Store({ state, mutations }) const store = new Vuex.Store({ state, mutations })
const wrapper = shallowMount(App, { store, stubs: ['router-view'] }) const wrapper = shallowMount(App, { store, stubs: ['router-view'] })
store.state.inquiries.splice(0, 1, {id: 1, name: 'new foo name'}) store.state.inquiries.splice(0, 1, { id: 1, name: 'new foo name' })
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
expect(storedInquiries.updateStorage.calledTwice).to.equal(true) expect(storedInquiries.updateStorage.calledTwice).to.equal(true)
expect(storedInquiries.updateStorage.args[1][0]).to.eql([ expect(storedInquiries.updateStorage.args[1][0]).to.eql([
{id: 1, name: 'new foo name'}, {id: 2, name: 'baz'}, {id: 3, name: 'bar'} { id: 1, name: 'new foo name' },
{ id: 2, name: 'baz' },
{ id: 3, name: 'bar' }
]) ])
}) })
}) })

View File

@@ -1,8 +1,9 @@
import { expect } from 'chai' import { expect } from 'chai'
import actions from '@/store/actions' import actions from '@/store/actions'
import sinon from 'sinon'
const { const {
addTab, addTab,
addInquiry, addInquiry,
deleteInquiries, deleteInquiries,
renameInquiry, renameInquiry,
@@ -90,11 +91,11 @@ describe('actions', () => {
it('addInquiry', async () => { it('addInquiry', async () => {
const state = { const state = {
inquiries: [1,2,3] inquiries: [1, 2, 3]
} }
await addInquiry({ state }, 4) await addInquiry({ state }, 4)
expect(state.inquiries).to.eql([1,2,3,4]) expect(state.inquiries).to.eql([1, 2, 3, 4])
}) })
it('deleteInquiries', async () => { it('deleteInquiries', async () => {
@@ -112,19 +113,19 @@ describe('actions', () => {
it('renameInquiry', async () => { it('renameInquiry', async () => {
const state = { const state = {
inquiries: [ inquiries: [
{ id: 1, name: 'foo'}, { id: 1, name: 'foo' },
{ id: 2, name: 'bar' }, { id: 2, name: 'bar' },
{ id: 3, name: 'baz' }, { id: 3, name: 'baz' }
], ],
tabs: [{ id: 1, name: 'foo'}, { id: 2, name: 'bar' }] tabs: [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }]
} }
const commit = sinon.spy() const commit = sinon.spy()
await renameInquiry({ state, commit }, {inquiryId: 2, newName: 'new name'}) await renameInquiry({ state, commit }, { inquiryId: 2, newName: 'new name' })
expect(state.inquiries).to.eql([ expect(state.inquiries).to.eql([
{ id: 1, name: 'foo'}, { id: 1, name: 'foo' },
{ id: 2, name: 'new name' }, { id: 2, name: 'new name' },
{ id: 3, name: 'baz' }, { id: 3, name: 'baz' }
]) ])
expect(commit.calledWith('updateTab', { expect(commit.calledWith('updateTab', {
tab: { id: 2, name: 'bar' }, tab: { id: 2, name: 'bar' },
@@ -137,7 +138,7 @@ describe('actions', () => {
it('saveInquiry adds new inquiry in the storage', async () => { it('saveInquiry adds new inquiry in the storage', async () => {
const now = new Date() const now = new Date()
const nowPlusMinute = new Date(now.getTime() + 60 * 1000) const nowPlusMinute = new Date(now.getTime() + 60 * 1000)
const tab = { const tab = {
id: 1, id: 1,
query: 'select * from foo', query: 'select * from foo',
@@ -152,12 +153,12 @@ describe('actions', () => {
} }
const state = { const state = {
inquiries: [], inquiries: [],
tabs: [tab], tabs: [tab]
} }
const value = await saveInquiry({ state }, { const value = await saveInquiry({ state }, {
inquiryTab: tab, inquiryTab: tab,
newName: 'foo' newName: 'foo'
}) })
expect(value.id).to.equal(tab.id) expect(value.id).to.equal(tab.id)
expect(value.name).to.equal('foo') expect(value.name).to.equal('foo')
@@ -183,12 +184,12 @@ describe('actions', () => {
const state = { const state = {
inquiries: [], inquiries: [],
tabs: [tab], tabs: [tab]
} }
const first = await saveInquiry({ state }, { const first = await saveInquiry({ state }, {
inquiryTab: tab, inquiryTab: tab,
newName: 'foo' newName: 'foo'
}) })
tab.name = 'foo' tab.name = 'foo'
@@ -223,12 +224,12 @@ describe('actions', () => {
const state = { const state = {
inquiries: [], inquiries: [],
tabs: [tab], tabs: [tab]
} }
await saveInquiry({ state }, { await saveInquiry({ state }, {
inquiryTab: tab, inquiryTab: tab,
newName: 'foo' newName: 'foo'
}) })
const inquiries = state.inquiries const inquiries = state.inquiries

View File

@@ -367,7 +367,7 @@ describe('mutations', () => {
inquiries: [] inquiries: []
} }
setInquiries(state, [1,2,3]) setInquiries(state, [1, 2, 3])
expect(state.inquiries).to.eql([1,2,3]) expect(state.inquiries).to.eql([1, 2, 3])
}) })
}) })

View File

@@ -95,7 +95,7 @@ describe('Inquiries.vue', () => {
createdAt: '2020-03-08T19:57:56.299Z' createdAt: '2020-03-08T19:57:56.299Z'
} }
]) ])
const state = { const state = {
predefinedInquiries: [], predefinedInquiries: [],
inquiries: [ inquiries: [
@@ -140,7 +140,7 @@ describe('Inquiries.vue', () => {
createdAt: '2020-03-08T19:57:56.299Z' createdAt: '2020-03-08T19:57:56.299Z'
} }
]) ])
const state = { const state = {
predefinedInquiries: [], predefinedInquiries: [],
inquiries: [ inquiries: [
@@ -184,7 +184,7 @@ describe('Inquiries.vue', () => {
createdAt: '2020-03-08T19:57:56.299Z' createdAt: '2020-03-08T19:57:56.299Z'
} }
]) ])
const state = { const state = {
predefinedInquiries: [], predefinedInquiries: [],
inquiries: [ inquiries: [
@@ -775,7 +775,7 @@ describe('Inquiries.vue', () => {
const state = { const state = {
predefinedInquiries: [], predefinedInquiries: [],
inquiries: [inquiryInStore] inquiries: [inquiryInStore]
} }
const store = new Vuex.Store({ state, mutations, actions }) const store = new Vuex.Store({ state, mutations, actions })

View File

@@ -361,7 +361,6 @@ describe('MainMenu.vue', () => {
const store = new Vuex.Store({ state, mutations, actions }) const store = new Vuex.Store({ state, mutations, actions })
const $route = { path: '/workspace' } const $route = { path: '/workspace' }
sinon.stub(storedInquiries, 'isTabNeedName').returns(false) sinon.stub(storedInquiries, 'isTabNeedName').returns(false)
wrapper = mount(MainMenu, { wrapper = mount(MainMenu, {
store, store,
@@ -376,8 +375,8 @@ describe('MainMenu.vue', () => {
// check that the inquiry was saved via saveInquiry (newName='') // check that the inquiry was saved via saveInquiry (newName='')
expect(actions.saveInquiry.calledOnce).to.equal(true) expect(actions.saveInquiry.calledOnce).to.equal(true)
expect(actions.saveInquiry.args[0][1]).to.eql({ expect(actions.saveInquiry.args[0][1]).to.eql({
inquiryTab:state.currentTab, newName: '' inquiryTab: state.currentTab, newName: ''
}) })
// check that the tab was updated // check that the tab was updated
@@ -499,7 +498,7 @@ describe('MainMenu.vue', () => {
.find(button => button.text() === 'Save') .find(button => button.text() === 'Save')
.trigger('click') .trigger('click')
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
// check that the dialog is closed // check that the dialog is closed
expect(wrapper.find('[data-modal="save"]').exists()).to.equal(false) expect(wrapper.find('[data-modal="save"]').exists()).to.equal(false)
@@ -507,8 +506,8 @@ describe('MainMenu.vue', () => {
// check that the inquiry was saved via saveInquiry (newName='foo') // check that the inquiry was saved via saveInquiry (newName='foo')
expect(actions.saveInquiry.calledOnce).to.equal(true) expect(actions.saveInquiry.calledOnce).to.equal(true)
expect(actions.saveInquiry.args[0][1]).to.eql({ expect(actions.saveInquiry.args[0][1]).to.eql({
inquiryTab:state.currentTab, inquiryTab: state.currentTab,
newName:'foo' newName: 'foo'
}) })
// check that the tab was updated // check that the tab was updated
@@ -590,16 +589,16 @@ describe('MainMenu.vue', () => {
.find(button => button.text() === 'Save') .find(button => button.text() === 'Save')
.trigger('click') .trigger('click')
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
// check that the dialog is closed // check that the dialog is closed
expect(wrapper.find('[data-modal="save"]').exists()).to.equal(false) expect(wrapper.find('[data-modal="save"]').exists()).to.equal(false)
// check that the inquiry was saved via saveInquiry (newName='bar') // check that the inquiry was saved via saveInquiry (newName='bar')
expect(actions.saveInquiry.calledOnce).to.equal(true) expect(actions.saveInquiry.calledOnce).to.equal(true)
expect(actions.saveInquiry.args[0][1]).to.eql({ expect(actions.saveInquiry.args[0][1]).to.eql({
inquiryTab:state.currentTab, inquiryTab: state.currentTab,
newName: 'bar' newName: 'bar'
}) })
// check that the tab was updated // check that the tab was updated