forked from AkkomaGang/akkoma-fe
Add tests
This commit is contained in:
parent
a6136f6cb2
commit
ba4656312a
3 changed files with 115 additions and 3 deletions
|
@ -5,7 +5,7 @@ export const defaultState = {
|
||||||
allListsObject: {}
|
allListsObject: {}
|
||||||
}
|
}
|
||||||
|
|
||||||
const mutations = {
|
export const mutations = {
|
||||||
setLists (state, value) {
|
setLists (state, value) {
|
||||||
state.allLists = value
|
state.allLists = value
|
||||||
},
|
},
|
||||||
|
@ -14,7 +14,12 @@ const mutations = {
|
||||||
state.allListsObject[id] = {}
|
state.allListsObject[id] = {}
|
||||||
}
|
}
|
||||||
state.allListsObject[id].title = title
|
state.allListsObject[id].title = title
|
||||||
|
|
||||||
|
if (!find(state.allLists, { id })) {
|
||||||
|
state.allLists.push({ id, title })
|
||||||
|
} else {
|
||||||
find(state.allLists, { id }).title = title
|
find(state.allLists, { id }).title = title
|
||||||
|
}
|
||||||
},
|
},
|
||||||
setListAccounts (state, { id, accountIds }) {
|
setListAccounts (state, { id, accountIds }) {
|
||||||
if (!state.allListsObject[id]) {
|
if (!state.allListsObject[id]) {
|
||||||
|
@ -65,7 +70,7 @@ const actions = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const getters = {
|
export const getters = {
|
||||||
findListTitle: state => id => {
|
findListTitle: state => id => {
|
||||||
if (!state.allListsObject[id]) return
|
if (!state.allListsObject[id]) return
|
||||||
return state.allListsObject[id].title
|
return state.allListsObject[id].title
|
||||||
|
|
|
@ -37,4 +37,28 @@ describe('routes', () => {
|
||||||
|
|
||||||
expect(matchedComponents[0].components.default.components.hasOwnProperty('UserCard')).to.eql(true)
|
expect(matchedComponents[0].components.default.components.hasOwnProperty('UserCard')).to.eql(true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('list view', async () => {
|
||||||
|
await router.push('/lists')
|
||||||
|
|
||||||
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
|
expect(matchedComponents[0].components.default.components.hasOwnProperty('ListCard')).to.eql(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('list timeline', async () => {
|
||||||
|
await router.push('/lists/1')
|
||||||
|
|
||||||
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
|
expect(matchedComponents[0].components.default.components.hasOwnProperty('Timeline')).to.eql(true)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('list edit', async () => {
|
||||||
|
await router.push('/lists/1/edit')
|
||||||
|
|
||||||
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
|
expect(matchedComponents[0].components.default.components.hasOwnProperty('BasicUserCard')).to.eql(true)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
83
test/unit/specs/modules/lists.spec.js
Normal file
83
test/unit/specs/modules/lists.spec.js
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
import { cloneDeep } from 'lodash'
|
||||||
|
import { defaultState, mutations, getters } from '../../../../src/modules/lists.js'
|
||||||
|
|
||||||
|
describe('The lists module', () => {
|
||||||
|
describe('mutations', () => {
|
||||||
|
it('updates array of all lists', () => {
|
||||||
|
const state = cloneDeep(defaultState)
|
||||||
|
const list = { id: '1', title: 'testList' }
|
||||||
|
|
||||||
|
mutations.setLists(state, [list])
|
||||||
|
expect(state.allLists).to.have.length(1)
|
||||||
|
expect(state.allLists).to.eql([list])
|
||||||
|
})
|
||||||
|
|
||||||
|
it('adds a new list with a title, updating the title for existing lists', () => {
|
||||||
|
const state = cloneDeep(defaultState)
|
||||||
|
const list = { id: '1', title: 'testList' }
|
||||||
|
const modList = { id: '1', title: 'anotherTestTitle' }
|
||||||
|
|
||||||
|
mutations.setList(state, list)
|
||||||
|
expect(state.allListsObject[list.id]).to.eql({ title: list.title })
|
||||||
|
expect(state.allLists).to.have.length(1)
|
||||||
|
expect(state.allLists[0]).to.eql(list)
|
||||||
|
|
||||||
|
mutations.setList(state, modList)
|
||||||
|
expect(state.allListsObject[modList.id]).to.eql({ title: modList.title })
|
||||||
|
expect(state.allLists).to.have.length(1)
|
||||||
|
expect(state.allLists[0]).to.eql(modList)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('adds a new list with an array of IDs, updating the IDs for existing lists', () => {
|
||||||
|
const state = cloneDeep(defaultState)
|
||||||
|
const list = { id: '1', accountIds: ['1', '2', '3'] }
|
||||||
|
const modList = { id: '1', accountIds: ['3', '4', '5'] }
|
||||||
|
|
||||||
|
mutations.setListAccounts(state, list)
|
||||||
|
expect(state.allListsObject[list.id]).to.eql({ accountIds: list.accountIds })
|
||||||
|
|
||||||
|
mutations.setListAccounts(state, modList)
|
||||||
|
expect(state.allListsObject[modList.id]).to.eql({ accountIds: modList.accountIds })
|
||||||
|
})
|
||||||
|
|
||||||
|
it('deletes a list', () => {
|
||||||
|
const state = {
|
||||||
|
allLists: [{ id: '1', title: 'testList' }],
|
||||||
|
allListsObject: {
|
||||||
|
1: { title: 'testList', accountIds: ['1', '2', '3'] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const id = '1'
|
||||||
|
|
||||||
|
mutations.deleteList(state, { id })
|
||||||
|
expect(state.allLists).to.have.length(0)
|
||||||
|
expect(state.allListsObject).to.eql({})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('getters', () => {
|
||||||
|
it('returns list title', () => {
|
||||||
|
const state = {
|
||||||
|
allLists: [{ id: '1', title: 'testList' }],
|
||||||
|
allListsObject: {
|
||||||
|
1: { title: 'testList', accountIds: ['1', '2', '3'] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const id = '1'
|
||||||
|
|
||||||
|
expect(getters.findListTitle(state)(id)).to.eql('testList')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('returns list accounts', () => {
|
||||||
|
const state = {
|
||||||
|
allLists: [{ id: '1', title: 'testList' }],
|
||||||
|
allListsObject: {
|
||||||
|
1: { title: 'testList', accountIds: ['1', '2', '3'] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const id = '1'
|
||||||
|
|
||||||
|
expect(getters.findListAccounts(state)(id)).to.eql(['1', '2', '3'])
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in a new issue