Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App.vue doesnt mount when running tests #745

Open
joel-wenzel opened this issue Jan 29, 2024 · 4 comments
Open

App.vue doesnt mount when running tests #745

joel-wenzel opened this issue Jan 29, 2024 · 4 comments
Labels
enhancement New feature or request pending triage

Comments

@joel-wenzel
Copy link

Environment

[8:43:08 AM] Working directory: C:/code/nuxt-test
[8:43:08 AM] Nuxt project info:


  • Operating System: Windows_NT
  • Node Version: v20.11.0
  • Nuxt Version: 3.9.3
  • CLI Version: 3.10.0
  • Nitro Version: 2.8.1
  • Package Manager: [email protected]
  • Builder: -
  • User Config: devtools, modules
  • Runtime Modules: @nuxt/test-utils/[email protected]
  • Build Modules: -

Reproduction

https://github.com/joel-wenzel/nuxt-test
Steps to reproduce:

  1. git clone https://github.com/joel-wenzel/nuxt-test
  2. cd nuxt-test
  3. npm ci
  4. npm run test
  5. There are two console logs in app.vue that dont seem to be logged

Describe the bug

It seems like App.vue doesnt mount when using @nuxt/test-utils. This was something nuxt-vitest did do, at least version 0.11.0.
In my case I am also using vuetify and rely on some of the vuetify elements being mounted in the app which unfortunately is not happening.

Additional context

No response

Logs

No response

@dosubot dosubot bot added the stale Issue has not had recent activity or appears to be solved. Stale issues will be automatically closed label Apr 29, 2024
@danielroe
Copy link
Member

Yes, this is the case. Given that you might not always want app.vue mounted, can you think of a good API, or share some pseudo-code of how you would want to test something that relies on having vuetify elements mounted somewhere else?

@danielroe danielroe added enhancement New feature or request and removed stale Issue has not had recent activity or appears to be solved. Stale issues will be automatically closed labels Apr 30, 2024
@joel-wenzel
Copy link
Author

joel-wenzel commented May 6, 2024

In my particular case my simplified app.vue looks something like:

<v-app>
   <NuxtLayout v-if="show"></NuxtLayout>
</v-app>

v-app is vuetify's app wrapper element (it will be used when they mount dialogs and hover menu's etc).

A lot of my components will end up generating popup menu's that I unfortunately cant test unless app.vue gets mounted.
Completely understand that for unit tests it may be beneficial or even desirable to omit the mounting of the main app but sadly in my case I kind of need it.

Copy link
Member

danielroe commented May 7, 2024

What about providing a path in the runtime test options to an app.vue that will be used explicitly during tests?

@MaxWeisen
Copy link

MaxWeisen commented May 17, 2024

I think my issue is similar.

I am testing a component that opens a v-dialog when a button is clicked.

When testing this component with @vue/test-utils I can see that the v-dialog is attached to the document.body.innerHTML.

When testing with @nuxt/test-utils the v-dialog isn't rendering anywhere.

What about providing a path in the runtime test options to an app.vue that will be used explicitly during tests?

I've tried looking for some more detail regarding this suggestion. @danielroe Do you have an example or a link to documentation that dives into this with a little more detail?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pending triage
Projects
None yet
Development

No branches or pull requests

3 participants