import { defineStore, setActiveReq, setStateProvider } from '../src'
+import { mount } from '@vue/test-utils'
describe('Store', () => {
let req: object
store.state
)
})
+
+ it.skip('should outlive components', () => {
+ let store: ReturnType<typeof useStore> | undefined
+
+ const wrapper = mount({
+ setup() {
+ store = useStore()
+
+ return { store }
+ },
+
+ template: `a: {{ store.a }}`,
+ })
+
+ expect(wrapper.html()).toBe('a: true')
+
+ if (!store) throw new Error('no store')
+
+ const spy = jest.fn()
+ store.subscribe(spy)
+
+ expect(spy).toHaveBeenCalledTimes(0)
+ store.a = !store.a
+ expect(spy).toHaveBeenCalledTimes(1)
+
+ wrapper.unmount()
+ store.a = !store.a
+ expect(spy).toHaveBeenCalledTimes(2)
+ })
})
"@types/node": "^14.11.2",
"@vue/devtools-api": "^6.0.0-beta.2",
"@vue/server-renderer": "^3.0.0",
+ "@vue/test-utils": "^2.0.0-beta.5",
"brotli": "^1.3.2",
"codecov": "^3.6.1",
"conventional-changelog-cli": "^2.1.0",
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0.tgz#ec089236629ecc0f10346b92f101ff4339169f1a"
integrity sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==
+"@vue/test-utils@^2.0.0-beta.5":
+ version "2.0.0-beta.5"
+ resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.0.0-beta.5.tgz#c5980e3e6d22a1811483577bcfbcc2c4493c4a73"
+ integrity sha512-ohWcS277p/3KHK5di6UskDZK8hsaZ7hzsJiMl1f0jI+boeaq53MqwA9c8VaHsJrmJEOjNH0Y3QDzyU7LTXpKNQ==
+
JSONStream@^1.0.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"