]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
test: test refs in plugins
authorEduardo San Martin Morote <posva13@gmail.com>
Sat, 15 May 2021 13:32:56 +0000 (15:32 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Sat, 15 May 2021 13:32:56 +0000 (15:32 +0200)
__tests__/storePlugins.spec.ts

index c88317b092b28ffc19ca7a44c3a9f23420cd43a8..4bd9431bdc3695fd643a5e92b0587633640c4dad 100644 (file)
@@ -1,5 +1,6 @@
 import { createPinia, defineStore, PiniaPlugin } from '../src'
 import { createLocalVue, mount } from '@vue/test-utils'
+import { ref, set } from '@vue/composition-api'
 
 declare module '../src' {
   export interface PiniaCustomProperties<Id> {
@@ -7,6 +8,7 @@ declare module '../src' {
     // uid: App['_uid']
     hasPinia: boolean
     idFromPlugin: Id
+    someRef: number
   }
 }
 
@@ -87,4 +89,27 @@ describe('store plugins', () => {
     const store = useStore()
     expect(store.doubleN).toBe(40)
   })
+
+  it('can add refs to state', () => {
+    const pinia = createPinia()
+    const someRef = ref(0)
+    pinia.use(({ store }) => {
+      set(store, 'someRef', someRef)
+      set(store.$state, 'someRef', someRef)
+    })
+
+    mount({ template: '<p/>' }, { localVue, pinia })
+
+    const store = useStore()
+
+    expect(store.someRef).toBe(0)
+    expect(store.$state.someRef).toBe(0)
+    someRef.value++
+    expect(store.someRef).toBe(1)
+    expect(store.$state.someRef).toBe(1)
+    store.someRef++
+    expect(store.someRef).toBe(2)
+    expect(store.$state.someRef).toBe(2)
+    expect(someRef.value).toBe(2)
+  })
 })