Subscribe on changes!

Vue fails to mount in environments that don't provide window.SVGElement

avatar
Apr 12th 2021

Version

3.0.11

Reproduction link

https://github.com/xinix/vue3-svg-bug

Steps to reproduce

Create a sample Vue3 app with Vue UI:

vue create demo

Select the following:

  • Manually select features
  • Choose Vue 3.x (preview)
  • Class-style syntax? No
  • Unit testing solution: Mocha
npm install 
npm run test:unit

What is expected?

Sample test to run

What is actually happening?

An error is thrown:

ReferenceError: SVGElement is not defined
    at Object.app.mount (dist/js/webpack:/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js:1259:1)
    at mount (dist/js/webpack:/node_modules/@vue/test-utils/dist/vue-test-utils.esm-bundler.js:2310:1)
    at shallowMount (dist/js/webpack:/node_modules/@vue/test-utils/dist/vue-test-utils.esm-bundler.js:2329:1)
    at Context.<anonymous> (dist/js/webpack:/tests/unit/example.spec.ts:8:1)
    at processImmediate (internal/timers.js:461:21)
avatar
Apr 12th 2021

https://github.com/vuejs/vue-cli/pull/6400

Will be fixed in the next version of the mocha vue cli plugin.

avatar
Apr 12th 2021

On second though, we might want to consider making this more robust in Vue core. I'll reopen for further evalution.

avatar
Apr 13th 2021

Does this really need a fix? For runtime-dom, we assume that it runs in a standard browser environment.

avatar
Apr 13th 2021

Probably not. Wanted to check out why it was a problem on vue-cli durting testing with mocha though, before I close it.

avatar
Apr 22nd 2021