Skip to content

Pinia Nuxt module breaks the createTestingPinia helper in tests #2555

Open
@antoinezanardi

Description

Reproduction

https://github.com/antoinezanardi/nuxt-pinia-testing

Steps to reproduce the bug

  1. Clone the reproduction repository.
  2. Run pnpm install
  3. Run vitest --config vitest.unit-config.ts

Expected behavior

The test should pass as the method from store is called when the component is mounted.

Actual behavior

When using the createTestingPinia util method in a Nuxt project, the stores are not correctly mocked.

I created a simple test which expect a method from a store to be called when the component is mounted.

However, the test fails with the following logs :

fetchAndSetRoles # <- This is the log from the store method, proving it's called and not correctly mocked.

stderr | tests/unit/app.nuxt.spec.ts > App Component > Store > should call method from store when mounted.

[Vue warn]: App already provides property with key "Symbol(pinia)". It will be overwritten with the new value. # <- This warning is not expected.

FAIL  tests/unit/app.nuxt.spec.ts > App Component > Store > should call method from store when mounted.

TypeError: [Function] is not a spy or a call to a spy! # <- Store is not mocked

Additional information

I'm pretty sure that the nuxt module is the source of the problem.

If you comment the module in the nuxt.config.ts at the root of the project, the test passes.

// nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    //"@pinia/nuxt", <- If you comment this line, the test passes …!
  ],
  devtools: { enabled: true }
})

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    • Status

      💬 In discussion

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions