Merge pull request #833 from h3poteto/iss-209

refs #209 Add tests for Jump modal
This commit is contained in:
AkiraFukushima 2019-02-16 19:18:58 +09:00 committed by GitHub
commit 7b4908c056
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 213 additions and 0 deletions

View File

@ -0,0 +1,101 @@
import { createLocalVue } from '@vue/test-utils'
import Vuex from 'vuex'
import i18n from '~/src/config/i18n'
import router from '@/router'
import Jump from '~/src/renderer/store/TimelineSpace/Modals/Jump'
const state = {
modalOpen: true,
channel: '',
defaultChannelList: [
{
name: i18n.t('side_menu.home'),
path: 'home'
},
{
name: i18n.t('side_menu.notification'),
path: 'notifications'
},
{
name: i18n.t('side_menu.favourite'),
path: 'favourites'
},
{
name: i18n.t('side_menu.local'),
path: 'local'
},
{
name: i18n.t('side_menu.public'),
path: 'public'
},
{
name: i18n.t('side_menu.hashtag'),
path: 'hashtag'
},
{
name: i18n.t('side_menu.search'),
path: 'search'
},
{
name: i18n.t('side_menu.direct'),
path: 'direct-messages'
}
],
listChannelList: [],
tagChannelList: [],
selectedChannel: {
name: i18n.t('side_menu.home'),
path: 'home'
}
}
const initState = {
namespaced: true,
state: state,
actions: Jump.actions,
mutations: Jump.mutations
}
const timelineState = {
namespaced: true,
state: {
account: {
_id: '0'
}
}
}
describe('Jump', () => {
let store
let localVue
beforeEach(() => {
localVue = createLocalVue()
localVue.use(Vuex)
store = new Vuex.Store({
modules: {
Jump: initState,
TimelineSpace: timelineState
}
})
})
describe('jumpCurrentSelected', () => {
it('should be changed', () => {
store.dispatch('Jump/jumpCurrentSelected')
expect(store.state.Jump.modalOpen).toEqual(false)
expect(router.push).toHaveBeenCalledWith({ path: '/0/home' })
})
})
describe('jump', () => {
it('should be changed', () => {
store.dispatch('Jump/jump', {
name: 'public',
path: 'public'
})
expect(store.state.Jump.modalOpen).toEqual(false)
expect(router.push).toHaveBeenCalledWith({ path: '/0/public' })
})
})
})

View File

@ -0,0 +1,112 @@
import i18n from '~/src/config/i18n'
import Jump from '@/store/TimelineSpace/Modals/Jump'
describe('TimelineSpace/Modals/Jump', () => {
describe('mutations', () => {
let state
beforeEach(() => {
state = {
modalOpen: true,
channel: '',
defaultChannelList: [
{
name: i18n.t('side_menu.home'),
path: 'home'
},
{
name: i18n.t('side_menu.notification'),
path: 'notifications'
},
{
name: i18n.t('side_menu.favourite'),
path: 'favourites'
},
{
name: i18n.t('side_menu.local'),
path: 'local'
},
{
name: i18n.t('side_menu.public'),
path: 'public'
},
{
name: i18n.t('side_menu.hashtag'),
path: 'hashtag'
},
{
name: i18n.t('side_menu.search'),
path: 'search'
},
{
name: i18n.t('side_menu.direct'),
path: 'direct-messages'
}
],
listChannelList: [],
tagChannelList: [],
selectedChannel: {
name: i18n.t('side_menu.home'),
path: 'home'
}
}
})
describe('updateListChannel', () => {
it('should be updated', () => {
const channelList = [
{
id: '0',
title: 'admin'
},
{
id: '1',
title: 'engineer'
},
{
id: '2',
title: 'designer'
}
]
Jump.mutations.updateListChannel(state, channelList)
expect(state.listChannelList).toEqual([
{
path: 'lists/0',
name: '#admin'
},
{
path: 'lists/1',
name: '#engineer'
},
{
path: 'lists/2',
name: '#designer'
}
])
})
})
describe('updateTagChannel', () => {
it('should be updated', () => {
const channelList = [
{
tagName: 'whalebird'
},
{
tagName: 'tqrk'
}
]
Jump.mutations.updateTagChannel(state, channelList)
expect(state.tagChannelList).toEqual([
{
name: '#whalebird',
path: 'hashtag/whalebird'
},
{
name: '#tqrk',
path: 'hashtag/tqrk'
}
])
})
})
})
})