From: Eduardo San Martin Morote Date: Fri, 27 Aug 2021 13:41:01 +0000 (+0200) Subject: test: refactor X-Git-Tag: @pinia/nuxt@0.0.2~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8760ba9edd48a44b34d772f2126587f69d2b8dde;p=thirdparty%2Fvuejs%2Fpinia.git test: refactor --- diff --git a/packages/pinia/__tests__/hmr.spec.ts b/packages/pinia/__tests__/hmr.spec.ts index b87136a0..a76f9ef6 100644 --- a/packages/pinia/__tests__/hmr.spec.ts +++ b/packages/pinia/__tests__/hmr.spec.ts @@ -8,14 +8,13 @@ import { } from '../src' function defineOptions< - O extends DefineStoreOptions + O extends Omit, 'id'> >(options: O): O { return options } describe('HMR', () => { const baseOptions = defineOptions({ - id: 'main', state: () => ({ n: 0, arr: [], @@ -45,12 +44,12 @@ describe('HMR', () => { describe('state', () => { it('adds new state properties', () => { - const useStore = defineStore(baseOptions) + const useStore = defineStore('id', baseOptions) const store: any = useStore() store.n++ // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ newOne: 'hey', n: 0 }), })(null, store) @@ -59,7 +58,7 @@ describe('HMR', () => { expect(store.n).toBe(1) expect(store.newOne).toBe('hey') - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ other: 'new', n: 0 }), })(null, store) @@ -71,18 +70,18 @@ describe('HMR', () => { }) it('patches nested objects', () => { - const useStore = defineStore(baseOptions) + const useStore = defineStore('id', baseOptions) const store: any = useStore() // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ nested: { a: 'b', b: 'b' } }), })(null, store) expect(store.$state).toEqual({ nested: { a: 'a', b: 'b' } }) - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ nested: { b: 'c' } }), })(null, store) @@ -91,18 +90,18 @@ describe('HMR', () => { }) it('skips arrays', () => { - const useStore = defineStore(baseOptions) + const useStore = defineStore('id', baseOptions) const store: any = useStore() // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ arr: [2] }), })(null, store) expect(store.$state).toEqual({ arr: [] }) - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ arr: [1] }), })(null, store) @@ -110,18 +109,18 @@ describe('HMR', () => { }) it('skips nested arrays', () => { - const useStore = defineStore(baseOptions) + const useStore = defineStore('id', baseOptions) const store: any = useStore() // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ nestedArr: { arr: [2] } }), })(null, store) expect(store.$state).toEqual({ nestedArr: { arr: [] } }) - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ nestedArr: { arr: [1] } }), })(null, store) @@ -129,7 +128,7 @@ describe('HMR', () => { }) it('keeps state reactive', () => { - const useStore = defineStore(baseOptions) + const useStore = defineStore('id', baseOptions) const store: any = useStore() const directSpy = jest.fn() @@ -139,7 +138,7 @@ describe('HMR', () => { watch(() => store.$state.n, $stateSpy, { flush: 'sync' }) // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ newOne: 'hey', n: 0 }), })(null, store) @@ -154,7 +153,7 @@ describe('HMR', () => { expect(directSpy).toHaveBeenCalledTimes(2) expect($stateSpy).toHaveBeenCalledTimes(2) - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ other: 'new', n: 0 }), })(null, store) @@ -173,11 +172,11 @@ describe('HMR', () => { describe('actions', () => { it('adds new actions', () => { - const useStore = defineStore(baseOptions) + const useStore = defineStore('id', baseOptions) const store: any = useStore() // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, actions: { ...baseOptions.actions, @@ -194,7 +193,7 @@ describe('HMR', () => { expect(store.n).toBe(0) expect(store.$state.n).toBe(0) - defineStore(baseOptions)(null, store) + defineStore('id', baseOptions)(null, store) store.increment() expect(store.n).toBe(1) @@ -205,12 +204,12 @@ describe('HMR', () => { describe('getters', () => { it('adds new getters properties', () => { - const useStore = defineStore(baseOptions) + const useStore = defineStore('id', baseOptions) const store: any = useStore() expect(store.double).toBe(0) // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, getters: { ...baseOptions.getters, @@ -222,16 +221,15 @@ describe('HMR', () => { expect(store.double).toBe(6) expect(store.triple).toBe(9) - defineStore(baseOptions)(null, store) + defineStore('id', baseOptions)(null, store) store.n = 4 expect(store.double).toBe(8) expect(store).not.toHaveProperty('triple') }) - // FIXME: - it.skip('keeps getters reactive', () => { - const useStore = defineStore(baseOptions) + it('keeps getters reactive', () => { + const useStore = defineStore('id', baseOptions) const store: any = useStore() const spy = jest.fn() @@ -245,7 +243,7 @@ describe('HMR', () => { ) // simulate a hmr - defineStore({ + defineStore('id', { ...baseOptions, state: () => ({ n: 2, newThing: true }), })(null, store) @@ -257,7 +255,7 @@ describe('HMR', () => { // expect(store.double).toBe(6) expect(spy).toHaveBeenCalledTimes(1) - defineStore(baseOptions)(null, store) + defineStore('id', baseOptions)(null, store) store.n++ // expect(store.double).toBe(8) diff --git a/packages/pinia/__tests__/state.spec.ts b/packages/pinia/__tests__/state.spec.ts index 5513a4b8..e29e5c23 100644 --- a/packages/pinia/__tests__/state.spec.ts +++ b/packages/pinia/__tests__/state.spec.ts @@ -2,18 +2,17 @@ import { createPinia, defineStore, Pinia, setActivePinia } from '../src' import { computed, nextTick, ref, watch } from 'vue' describe('State', () => { - const useStore = (pinia?: Pinia) => { - // create a new store - setActivePinia(pinia || createPinia()) - return defineStore({ - id: 'main', - state: () => ({ - name: 'Eduardo', - counter: 0, - nested: { n: 0 }, - }), - })() - } + beforeEach(() => { + setActivePinia(createPinia()) + }) + + const useStore = defineStore('main', { + state: () => ({ + name: 'Eduardo', + counter: 0, + nested: { n: 0 }, + }), + }) it('can directly access state at the store level', () => { const store = useStore()