No More Posting New Topics!

If you have a question or an issue, please start a thread in our Github Discussions Forum.
This forum is closed for new threads/ topics.

Navigation

    Quasar Framework

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    [0.15.1] Components registering within Jest tests

    Help
    10
    23
    7451
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • V
      vinstah last edited by

      Hi @MusicForMellons,
      You are correct vue-server-renderer is required for snapshots, it is also needed if you use render/renderToString from @vue/server-tests-utils

      1 Reply Last reply Reply Quote 0
      • V
        vinstah @vinstah last edited by vinstah

        on a side note I can turn off those QPage needs to be child of QPageContainer messages by using jest --silent

        1 Reply Last reply Reply Quote 0
        • M
          MusicForMellons last edited by

          @vinstah Ah, thanks. I get these error messages (and components are ‘registered’ I think…):
          console.error node_modules/vue/dist/vue.common.js:593
          [Vue warn]: Unknown custom element: <q-page-sticky> - did you register the component correctly? For recursive components, make sure to provide the “name” option.

            (found in <Root>)
          console.error node_modules/vue/dist/vue.common.js:593
            [Vue warn]: Unknown custom element: <q-btn> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
            
            (found in <Root>)
          console.error node_modules/vue/dist/vue.common.js:593
            [Vue warn]: Unknown custom element: <q-icon> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
          Jaxon 1 Reply Last reply Reply Quote 0
          • Jaxon
            Jaxon @MusicForMellons last edited by

            @musicformellons do you happen to have a solution for this?

            1 Reply Last reply Reply Quote 0
            • M
              MusicForMellons last edited by

              @Jaxon No, sorry. I got this answer recently, but it does not answer your issue: https://stackoverflow.com/questions/49616642/jest-unit-testing-config-with-quasar-framework-0-15

              I gave up on Jest for now and work happily with cypress (use it for e2e, and some unit-testing when necessary…).

              1 Reply Last reply Reply Quote 0
              • Akaryatrh
                Akaryatrh last edited by Akaryatrh

                @MusicForMellons @Jaxon Do you guys import your components the way @vinstah does? On my side It’s working properly:

                import Quasar, * as All from 'quasar'
                import { shallow, createLocalVue } from '@vue/test-utils'
                const localVue = createLocalVue()
                
                localVue.use(Quasar, {components: All, directives: All, plugins: All})
                
                Jaxon 1 Reply Last reply Reply Quote 0
                • Jaxon
                  Jaxon @Akaryatrh last edited by

                  @akaryatrh Yeah, I switched it over using @vinstah’s method and it works!

                  Akaryatrh 1 Reply Last reply Reply Quote 1
                  • Akaryatrh
                    Akaryatrh @Jaxon last edited by

                    @akaryatrh Yeah, I switched it over using @vinstah’s method and it works!

                    👍

                    1 Reply Last reply Reply Quote 0
                    • A
                      avorias5 last edited by

                      Using the same settings as @Akaryatrh

                      import Quasar, * as All from 'quasar'
                      import { shallow, createLocalVue } from '@vue/test-utils'
                      import Component from '/my/Component/
                      
                      const localVue = createLocalVue()
                      localVue.use(Quasar, {components: All, directives: All, plugins: All})
                      
                      const wrapper = shallow(Component, {
                        localVue
                      })
                      

                      The problem is that the wrapper.html() now returns undefined. So wrapper.find() and wrapper.findAll() always fail.

                      I’ve play around with the settings and found that if I use

                      localVue.use(Quasar, { directives: All, plugins: All})
                      

                      Without using components, the wrapper.html() would act normally.
                      If use components: All or components: ["A", "B" .. ], the wrapper.html() will become undefined.
                      However, we have to use Quasar components, otherwise Jest will throw the “component not registered correctly” error.

                      Does anyone facing the same problem? Can you guys successfully use wrapper.html(), wrapper.find() and wrapper.findAll() with this settings?
                      @vinstah @Jaxon @Akaryatrh

                      1 Reply Last reply Reply Quote 0
                      • nothingismagick
                        nothingismagick last edited by

                        anybody having problems resolving quasar in jest, use this:

                            "moduleNameMapper": {
                              "quasar": "quasar-framework/dist/umd/quasar.mat.umd.min.js"
                              ...
                        
                        haigha-earwicket 1 Reply Last reply Reply Quote 1
                        • nothingismagick
                          nothingismagick last edited by

                          This conversation is no longer applicable to testing in 1.0.

                          If you are reading this, please use $ quasar ext add @quasar/testing and install the prerigged jest harness that way.

                          1 Reply Last reply Reply Quote -1
                          • haigha-earwicket
                            haigha-earwicket @nothingismagick last edited by

                            For anyone else coming across this in a 1.0 world, the mapping has changed to (made it work for me, anyway):

                            "moduleNameMapper": {
                              "quasar": "quasar/dist/quasar.umd.min.js"
                              ...
                            1 Reply Last reply Reply Quote 0
                            • M
                              manubi last edited by

                              I am still getting the same error. Installing quasar ext add @quasar/testing throws an error “ext unknown”

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post