championswimmer/vuex-persist

View on GitHub
test/vuex-modules.spec.ts

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Created by championswimmer on 23/07/17.
 */

import { assert, expect, should } from 'chai'
import Vue from 'vue'
import { Store } from 'vuex'
import Vuex from 'vuex'
import VuexPersistence from '..'

Vue.use(Vuex)
const vuexPersist = new VuexPersistence({
  modules: ['dog']
})

const store = new Store<any>({
  state: {
    dog: {
      barks: 0
    },
    cat: {
      mews: 0
    }
  },
  mutations: {
    dogBark(state) {
      state.dog.barks++
    },
    catMew(state) {
      state.cat.mews++
    }
  },
  plugins: [vuexPersist.plugin]
})
const getSavedStore = () => JSON.parse((vuexPersist.storage as any).getItem('vuex') as string)

describe('Storage: MockStorage, Test: modules', () => {
  it('should persist specified module', () => {
    store.commit('dogBark')
    expect(getSavedStore().dog.barks).to.equal(1)
  })
  it('should not persist unspecified module', () => {
    store.commit('catMew')
    expect(getSavedStore().cat).to.be.undefined
  })
})