123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- import Module from '@/module/module'
- describe('Module', () => {
- it('get state', () => {
- const module = new Module({
- state: {
- value: true
- }
- })
- expect(module.state).toEqual({ value: true })
- })
- it('get state: should return object if state option is empty', () => {
- const module = new Module({})
- expect(module.state).toEqual({})
- })
- it('get namespacer: no namespace option', () => {
- const module = new Module({})
- expect(module.namespaced).toBe(false)
- })
- it('get namespacer: namespace option is true', () => {
- let module = new Module({
- namespaced: true
- })
- expect(module.namespaced).toBe(true)
- module = new Module({
- namespaced: 100
- })
- expect(module.namespaced).toBe(true)
- })
- it('add child method', () => {
- const module = new Module({})
- module.addChild('v1', new Module({}))
- module.addChild('v2', new Module({}))
- expect(Object.keys(module._children)).toEqual(['v1', 'v2'])
- })
- it('remove child method', () => {
- const module = new Module({})
- module.addChild('v1', new Module({}))
- module.addChild('v2', new Module({}))
- expect(Object.keys(module._children)).toEqual(['v1', 'v2'])
- module.removeChild('v2')
- module.removeChild('abc')
- expect(Object.keys(module._children)).toEqual(['v1'])
- })
- it('get child method', () => {
- const module = new Module({})
- const subModule1 = new Module({ state: { name: 'v1' }})
- const subModule2 = new Module({ state: { name: 'v2' }})
- module.addChild('v1', subModule1)
- module.addChild('v2', subModule2)
- expect(module.getChild('v2')).toEqual(subModule2)
- expect(module.getChild('v1')).toEqual(subModule1)
- })
- it('update method', () => {
- const originObject = {
- state: {
- name: 'vuex',
- version: '2.x.x'
- },
- namespaced: true,
- actions: {
- a1: () => {},
- a2: () => {}
- },
- mutations: {
- m1: () => {},
- m2: () => {}
- },
- getters: {
- g1: () => {},
- g2: () => {}
- }
- }
- const newObject = {
- actions: {
- a3: () => {},
- a4: () => {}
- },
- mutations: {
- m3: () => {},
- m2: () => {}
- },
- getters: {
- g1: () => {}
- },
- namespaced: false,
- state: {
- name: 'vuex',
- version: '3.x.x'
- }
- }
- const module = new Module(originObject)
- expect(module._rawModule).toEqual(originObject)
- module.update(newObject)
- expect(module._rawModule.actions).toEqual(newObject.actions)
- expect(module._rawModule.mutations).toEqual(newObject.mutations)
- expect(module._rawModule.getters).toEqual(newObject.getters)
- expect(module._rawModule.namespaced).toEqual(newObject.namespaced)
- expect(module._rawModule.state).toEqual(originObject.state)
- })
- it('forEachChild method', () => {
- const module = new Module({})
- const module1 = new Module({})
- const module2 = new Module({})
- module.addChild('v1', module1)
- module.addChild('v2', module2)
- const collections = []
- module.forEachChild((item) => { collections.push(item) })
- expect(collections.length).toEqual(2)
- expect(collections).toEqual([module2, module1])
- })
- it('forEachAction method', () => {
- const action1 = () => {}
- const action2 = () => {}
- const module = new Module({
- actions: {
- action1, action2
- }
- })
- const collections = []
- module.forEachAction((item) => { collections.push(item) })
- expect(collections.length).toEqual(2)
- expect(collections).toEqual([action1, action2])
- })
- it('forEachGetter method', () => {
- const getter1 = () => {}
- const getter2 = () => {}
- const module = new Module({
- getters: {
- getter1, getter2
- }
- })
- const collections = []
- module.forEachGetter((item) => { collections.push(item) })
- expect(collections.length).toEqual(2)
- expect(collections).toEqual([getter1, getter2])
- })
- it('forEachMutation method', () => {
- const mutation1 = () => {}
- const mutation2 = () => {}
- const module = new Module({
- mutations: {
- mutation1, mutation2
- }
- })
- const collections = []
- module.forEachMutation((item) => { collections.push(item) })
- expect(collections.length).toEqual(2)
- expect(collections).toEqual([mutation1, mutation2])
- })
- })
|