- run: pnpm install
- run: pnpm run lint
- run: pnpm run test:types
+ - run: pnpm run -r dev:prepare
- run: pnpm run test:vitest
- run: pnpm run build
- run: pnpm run build:dts
--- /dev/null
+import { fileURLToPath } from 'node:url'
+import { describe, it, expect } from 'vitest'
+import { setup, $fetch } from '@nuxt/test-utils'
+
+describe('works with nuxt', async () => {
+ await setup({
+ server: true,
+ rootDir: fileURLToPath(new URL('../playground', import.meta.url)),
+ nuxtConfig: {
+ hooks: {
+ 'vite:extendConfig'(config, { isClient }) {
+ config.define!.__BROWSER__ = isClient
+ },
+ },
+ vite: {
+ define: {
+ __DEV__: false,
+ __TEST__: true,
+ __FEATURE_PROD_DEVTOOLS__: false,
+ },
+ },
+ },
+ })
+
+ it('works on ssr', async () => {
+ const html = await $fetch('/')
+ expect(html).toContain('Count: 101')
+ })
+})
},
"devDependencies": {
"@nuxt/module-builder": "latest",
+ "@nuxt/test-utils": "^3.0.0-rc.8",
"nuxt": "^3.0.0-rc.8",
"typescript": "^4.7.4",
"vue-tsc": "^0.39.5"
+import { fileURLToPath } from 'node:url'
import { defineNuxtConfig } from 'nuxt'
import piniaModule from '../src/module'
export default defineNuxtConfig({
+ alias: {
+ pinia: fileURLToPath(new URL('../../pinia/src/index.ts', import.meta.url)),
+ },
modules: [piniaModule],
+ pinia: {
+ autoImports: [['defineStore', 'definePiniaStore']],
+ },
})
nuxt.options.build.transpile.push(resolver.resolve('./runtime'))
// Make sure we use the mjs build for pinia
- nuxt.options.alias.pinia = resolveModule('pinia/dist/pinia.mjs', {
- paths: [nuxt.options.rootDir, import.meta.url],
- })
+ nuxt.options.alias.pinia =
+ nuxt.options.alias.pinia ||
+ resolveModule('pinia/dist/pinia.mjs', {
+ paths: [nuxt.options.rootDir, import.meta.url],
+ })
nuxt.hook('prepare:types', ({ references }) => {
references.push({ types: '@pinia/nuxt' })
specifiers:
'@nuxt/kit': 3.0.0-rc.6
'@nuxt/module-builder': latest
+ '@nuxt/test-utils': ^3.0.0-rc.8
nuxt: ^3.0.0-rc.8
pinia: workspace:^2.0.18
typescript: ^4.7.4
pinia: link:../pinia
devDependencies:
'@nuxt/module-builder': 0.1.7
+ '@nuxt/test-utils': 3.0.0-rc.8
nuxt: 3.0.0-rc.8
typescript: 4.7.4
vue-tsc: 0.39.5_typescript@4.7.4
- webpack
dev: true
+ /@nuxt/test-utils/3.0.0-rc.8:
+ resolution: {integrity: sha512-YdTkMVensrWpMoDnUX4oNRZbaMarNTxDNYjRvZOe1QFtEc8zjqrBhkUfwzA9n9bTzN0xiDxrSLnVNndEY5mfOg==}
+ engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0}
+ peerDependencies:
+ vue: ^3.2.37
+ dependencies:
+ '@nuxt/kit': 3.0.0-rc.8
+ '@nuxt/schema': 3.0.0-rc.8
+ defu: 6.1.0
+ execa: 6.1.0
+ get-port-please: 2.6.1
+ jiti: 1.14.0
+ ohmyfetch: 0.4.18
+ transitivePeerDependencies:
+ - esbuild
+ - rollup
+ - supports-color
+ - vite
+ - webpack
+ dev: true
+
/@nuxt/ui-templates/0.3.2:
resolution: {integrity: sha512-o0KRB0Mna/M5QxqMe+XvlfKczFz3CQMlkEr6Ztyphp+00jq1Ti0AXdq1XAt9hXI3LoZRh4+2vVX331UaIZQQzQ==}
dev: true