diff --git a/cypress/integration/vuex-tab.js b/cypress/integration/vuex-tab.js index a222fa1a5..90a9c745e 100644 --- a/cypress/integration/vuex-tab.js +++ b/cypress/integration/vuex-tab.js @@ -23,7 +23,7 @@ suite('vuex tab', () => { it('should filter state & getters', () => { cy.get('.right .search input').clear().type('cou') - cy.get('.data-field').should('have.length', 1) + cy.get('.data-field').should('have.length', 2) cy.get('.right .search input').clear().type('no value') cy.get('.data-field').should('have.length', 0) cy.get('.right .search input').clear() @@ -59,6 +59,11 @@ suite('vuex tab', () => { expect(el.text()).to.include('type:"INCREMENT"') expect(el.text()).to.include('count:2') }) + cy.get('.data-field .key').contains('lastCountPayload').click() + cy.get('.vuex-state-inspector').then(el => { + expect(el.text()).to.include('a:1') + expect(el.text()).to.include('b:Object') + }) cy.get('#target').iframe().then(({ get }) => { get('#counter p').contains('1') }) diff --git a/shells/dev/target/store.js b/shells/dev/target/store.js index 34a68a52f..c99ed2f78 100644 --- a/shells/dev/target/store.js +++ b/shells/dev/target/store.js @@ -7,6 +7,7 @@ export default new Vuex.Store({ state: { inited: 0, count: 0, + lastCountPayload: null, date: new Date(), set: new Set(), map: new Map(), @@ -23,8 +24,14 @@ export default new Vuex.Store({ }, mutations: { TEST_INIT: state => state.inited++, - INCREMENT: state => state.count++, - DECREMENT: state => state.count--, + INCREMENT: (state, payload) => { + state.count++ + state.lastCountPayload = payload + }, + DECREMENT: (state, payload) => { + state.count-- + state.lastCountPayload = payload + }, UPDATE_DATE: state => { state.date = new Date() }, diff --git a/src/backend/vuex.js b/src/backend/vuex.js index 08fec18cf..e74fe2b00 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -146,7 +146,7 @@ export function initVuexBackend (hook, bridge) { // Replay mutations for (let i = snapshot.index + 1; i <= index; i++) { const mutation = mutations[i] - mutation.handlers.forEach(handler => handler(state, mutation.payload)) + mutation.handlers.forEach(handler => handler(mutation.payload)) if (i !== index && i % SharedData.cacheVuexSnapshotsEvery === 0) { takeSnapshot(i, state) }