]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
test: add storeToRefs
authorEduardo San Martin Morote <posva13@gmail.com>
Thu, 26 Sep 2024 09:44:49 +0000 (11:44 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Thu, 26 Sep 2024 09:44:49 +0000 (11:44 +0200)
packages/pinia/test-dts/storeToRefs.test-d.ts [new file with mode: 0644]

diff --git a/packages/pinia/test-dts/storeToRefs.test-d.ts b/packages/pinia/test-dts/storeToRefs.test-d.ts
new file mode 100644 (file)
index 0000000..6fc198e
--- /dev/null
@@ -0,0 +1,50 @@
+import {
+  expectType,
+  createPinia,
+  defineStore,
+  mapStores,
+  storeToRefs,
+} from './'
+import { App, computed, ComputedRef, ref, Ref, shallowRef } from 'vue'
+
+const useOptionsStore = defineStore('main', {
+  state: () => ({
+    n: 0,
+    ref: ref({
+      n: 0,
+      ref: ref(0),
+    }),
+    shallowRef: shallowRef({
+      n: 0,
+      ref: ref(0),
+    }),
+  }),
+})
+
+const optionsStore = useOptionsStore()
+const optionsRefs = storeToRefs(optionsStore)
+
+expectType<Ref<number>>(optionsRefs.n)
+expectType<Ref<{ n: number; ref: number }>>(optionsRefs.ref)
+expectType<Ref<{ n: number; ref: Ref<number> }>>(optionsRefs.shallowRef)
+
+const useSetupStore = defineStore('main', () => {
+  return {
+    n: ref(0),
+    ref: ref({
+      n: 0,
+      ref: ref(0),
+    }),
+    shallowRef: shallowRef({
+      n: 0,
+      ref: ref(0),
+    }),
+  }
+})
+
+const setupStore = useSetupStore()
+const setupRefs = storeToRefs(setupStore)
+
+expectType<Ref<number>>(setupRefs.n)
+expectType<Ref<{ n: number; ref: number }>>(setupRefs.ref)
+expectType<Ref<{ n: number; ref: Ref<number> }>>(setupRefs.shallowRef)