mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-06 10:08:52 +08:00
use actions, add store tests
This commit is contained in:
@@ -42,5 +42,40 @@ export default {
|
||||
}
|
||||
|
||||
return value
|
||||
},
|
||||
addInquiry ({ state }, newInquiry) {
|
||||
state.inquiries.push(newInquiry)
|
||||
},
|
||||
deleteInquiries ({ state, commit }, inquiryIdSet) {
|
||||
state.inquiries = state.inquiries.filter(
|
||||
inquiry => !inquiryIdSet.has(inquiry.id)
|
||||
)
|
||||
|
||||
// Close deleted inquiries if it was opened
|
||||
const tabs = state.tabs
|
||||
let i = tabs.length - 1
|
||||
while (i > -1) {
|
||||
if (inquiryIdSet.has(tabs[i].id)) {
|
||||
commit('deleteTab', tabs[i])
|
||||
}
|
||||
i--
|
||||
}
|
||||
},
|
||||
renameInquiry ({ state, commit }, {inquiryId, newName}) {
|
||||
const renamingInquiry = state.inquiries
|
||||
.find(inquiry => inquiry.id === inquiryId)
|
||||
|
||||
renamingInquiry.name = newName
|
||||
|
||||
// update tab, if renamed inquiry is opened
|
||||
const tab = state.tabs.find(tab => tab.id === renamingInquiry.id)
|
||||
if (tab) {
|
||||
commit('updateTab', {
|
||||
tab,
|
||||
newValues: {
|
||||
name: newName
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,40 +63,5 @@ export default {
|
||||
},
|
||||
setInquiries (state, value) {
|
||||
state.inquiries = value
|
||||
},
|
||||
addInquiry (state, newInquiry) {
|
||||
state.inquiries.push(newInquiry)
|
||||
},
|
||||
deleteInquiries (state, inquiryIdSet) {
|
||||
state.inquiries = state.inquiries.filter(
|
||||
inquiry => !inquiryIdSet.has(inquiry.id)
|
||||
)
|
||||
|
||||
// Close deleted inquiries if it was opened
|
||||
const tabs = state.tabs
|
||||
let i = tabs.length - 1
|
||||
while (i > -1) {
|
||||
if (inquiryIdSet.has(tabs[i].id)) {
|
||||
this.commit('deleteTab', tabs[i])
|
||||
}
|
||||
i--
|
||||
}
|
||||
},
|
||||
renameInquiry (state, {inquiryId, newName}) {
|
||||
const renamingInquiry = state.inquiries
|
||||
.find(inquiry => inquiry.id === inquiryId)
|
||||
|
||||
renamingInquiry.name = newName
|
||||
|
||||
// update tab, if renamed inquiry is opened
|
||||
const tab = state.tabs.find(tab => tab.id === renamingInquiry.id)
|
||||
if (tab) {
|
||||
this.commit('updateTab', {
|
||||
tab,
|
||||
newValues: {
|
||||
name: newName
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,7 +331,7 @@ export default {
|
||||
this.errorMsg = "Inquiry name can't be empty"
|
||||
return
|
||||
}
|
||||
this.$store.commit('renameInquiry', {
|
||||
this.$store.dispatch('renameInquiry', {
|
||||
inquiryId: this.processedInquiryId,
|
||||
newName: this.newName
|
||||
})
|
||||
@@ -341,7 +341,7 @@ export default {
|
||||
},
|
||||
duplicateInquiry (index) {
|
||||
const newInquiry = storedInquiries.duplicateInquiry(this.showedInquiries[index])
|
||||
this.$store.commit('addInquiry', newInquiry)
|
||||
this.$store.dispatch('addInquiry', newInquiry)
|
||||
},
|
||||
showDeleteDialog (idsSet) {
|
||||
this.deleteGroup = idsSet.size > 1
|
||||
@@ -353,14 +353,14 @@ export default {
|
||||
deleteInquiry () {
|
||||
this.$modal.hide('delete')
|
||||
if (!this.deleteGroup) {
|
||||
this.$store.commit('deleteInquiries', new Set().add(this.processedInquiryId))
|
||||
this.$store.dispatch('deleteInquiries', new Set().add(this.processedInquiryId))
|
||||
|
||||
// Clear checkbox
|
||||
if (this.selectedInquiriesIds.has(this.processedInquiryId)) {
|
||||
this.selectedInquiriesIds.delete(this.processedInquiryId)
|
||||
}
|
||||
} else {
|
||||
this.$store.commit('deleteInquiries', this.selectedInquiriesIds)
|
||||
this.$store.dispatch('deleteInquiries', this.selectedInquiriesIds)
|
||||
|
||||
// Clear checkboxes
|
||||
this.selectedInquiriesIds.clear()
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
import { expect } from 'chai'
|
||||
import actions from '@/store/actions'
|
||||
|
||||
const { addTab } = actions
|
||||
const {
|
||||
addTab,
|
||||
addInquiry,
|
||||
deleteInquiries,
|
||||
renameInquiry
|
||||
} = actions
|
||||
|
||||
describe('actions', () => {
|
||||
it('addTab adds new blank tab', async () => {
|
||||
@@ -81,4 +86,50 @@ describe('actions', () => {
|
||||
expect(state.tabs).to.have.lengthOf(2)
|
||||
expect(state.untitledLastIndex).to.equal(0)
|
||||
})
|
||||
|
||||
it('addInquiry', async () => {
|
||||
const state = {
|
||||
inquiries: [1,2,3]
|
||||
}
|
||||
|
||||
await addInquiry({ state }, 4)
|
||||
expect(state.inquiries).to.eql([1,2,3,4])
|
||||
})
|
||||
|
||||
it('deleteInquiries', async () => {
|
||||
const state = {
|
||||
inquiries: [{ id: 1 }, { id: 2 }, { id: 3 }],
|
||||
tabs: [{ id: 3 }, { id: 2 }]
|
||||
}
|
||||
const commit = sinon.spy()
|
||||
|
||||
await deleteInquiries({ state, commit }, new Set().add(2))
|
||||
expect(state.inquiries).to.eql([{ id: 1 }, { id: 3 }])
|
||||
expect(commit.calledWith('deleteTab', { id: 2 })).to.equal(true)
|
||||
})
|
||||
|
||||
it('renameInquiry', async () => {
|
||||
const state = {
|
||||
inquiries: [
|
||||
{ id: 1, name: 'foo'},
|
||||
{ id: 2, name: 'bar' },
|
||||
{ id: 3, name: 'baz' },
|
||||
],
|
||||
tabs: [{ id: 1, name: 'foo'}, { id: 2, name: 'bar' }]
|
||||
}
|
||||
const commit = sinon.spy()
|
||||
|
||||
await renameInquiry({ state, commit }, {inquiryId: 2, newName: 'new name'})
|
||||
expect(state.inquiries).to.eql([
|
||||
{ id: 1, name: 'foo'},
|
||||
{ id: 2, name: 'new name' },
|
||||
{ id: 3, name: 'baz' },
|
||||
])
|
||||
expect(commit.calledWith('updateTab', {
|
||||
tab: { id: 2, name: 'bar' },
|
||||
newValues: {
|
||||
name: 'new name'
|
||||
}
|
||||
})).to.equal(true)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -8,7 +8,8 @@ const {
|
||||
updatePredefinedInquiries,
|
||||
setDb,
|
||||
setLoadingPredefinedInquiries,
|
||||
setPredefinedInquiriesLoaded
|
||||
setPredefinedInquiriesLoaded,
|
||||
setInquiries
|
||||
} = mutations
|
||||
|
||||
describe('mutations', () => {
|
||||
@@ -360,4 +361,13 @@ describe('mutations', () => {
|
||||
setPredefinedInquiriesLoaded(state, true)
|
||||
expect(state.predefinedInquiriesLoaded).to.equal(true)
|
||||
})
|
||||
|
||||
it('setInquiries', () => {
|
||||
const state = {
|
||||
inquiries: []
|
||||
}
|
||||
|
||||
setInquiries(state, [1,2,3])
|
||||
expect(state.inquiries).to.eql([1,2,3])
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user