Snapshot testing library for Vuex.
Inspired by reducer-tester.
Test Code
import snapshot from "vuex-snapshot-test";
import store from "@/store";
snapshot({
store, // state: 0
dispatches: [dispatch => dispatch("increment")]
});
Snapshot
exports[`increment 1`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 0,
+ \\"value\\": 1,
},
}"
`;
npm install --save-dev vuex-snapshot-test
or
yarn add --dev vuex-snapshot-test
Vuex Store
// store.js
import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
const state = {
counter: {
value: 1
}
};
const mutations = {
increment: state => state.counter.value++,
decrement: state => state.counter.value--,
multiply: (state, payload) => {
state.counter.value = state.counter.value * payload.num;
}
};
const actions = {
increment: ({ commit }) => commit("increment"),
decrement: ({ commit }) => commit("decrement"),
multiply: ({ commit }, num) =>
commit("multiply", {
num
})
};
const store = new Vuex.Store({
state,
mutations,
actions
});
Test Code
// store.test.js
import snapshot from "vuex-snapshot-test";
import store from "@/store";
describe("test_describe", () => {
// pass state, mutations, and tests parameters.
snapshot({
state: {
counter: {
value: 1
}
},
mutations,
tests: [
{
type: "increment"
},
{
type: "multiply",
num: 5
}
]
});
// pass store and dispatches parameters.
snapshot({
store,
dispatches: [
dispatch => dispatch("increment"),
dispatch => dispatch("multiply", 5)
]
});
// pass store and commits parameters.
snapshot({
store,
commits: [
commit => commit("increment"),
commit => commit("decrement"),
commit => commit("multiply", { num: 5 })
]
});
});
Snapshot
exports[`test_describe decrement 1`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 1,
+ \\"value\\": 0,
},
}"
`;
exports[`test_describe increment 1`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 1,
+ \\"value\\": 2,
},
}"
`;
exports[`test_describe increment 2`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 1,
+ \\"value\\": 2,
},
}"
`;
exports[`test_describe increment 3`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 1,
+ \\"value\\": 2,
},
}"
`;
exports[`test_describe multiply 1`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 1,
+ \\"value\\": 5,
},
}"
`;
exports[`test_describe multiply 2`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 1,
+ \\"value\\": 5,
},
}"
`;
exports[`test_describe multiply 3`] = `
"Snapshot Diff:
- Before
+ After
Object {
\\"counter\\": Object {
- \\"value\\": 1,
+ \\"value\\": 5,
},
}"
`;
Issues and Pull requests are welcome ;)
This project is licensed under the terms of the MIT license