diff --git a/package.json b/package.json index 2f55c8bda..4280f730d 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@types/estree": "^0.0.42", "@types/jest": "^24.9.1", "@types/node": "12.12.35", - "@vue/compiler-sfc": "^3.0.0-rc.5", + "@vue/compiler-sfc": "^3.0.0-rc.10", "babel-jest": "^25.2.3", "babel-preset-jest": "^25.2.1", "dom-event-types": "^1.0.0", @@ -38,7 +38,7 @@ "ts-jest": "^25.0.0", "tsd": "0.11.0", "typescript": "^3.7.5", - "vue": "^3.0.0-rc.7", + "vue": "^3.0.0-rc.10", "vue-jest": "vuejs/vue-jest#next", "vue-router": "^4.0.0-alpha.14", "vuex": "^4.0.0-beta.1" diff --git a/src/emitMixin.ts b/src/emitMixin.ts index 3303c1662..0777800b6 100644 --- a/src/emitMixin.ts +++ b/src/emitMixin.ts @@ -10,7 +10,23 @@ export const attachEmitListener = () => { events[event] ? (events[event] = [...events[event], [...args]]) : (events[event] = [[...args]]) + + // Vue will warn you if you emit an event that is not declared in `emits` and + // if the parent is not listening for that event. + // since we intercept the event, we are never listening for it explicitly on the + // Parent component. Swallow those events then restore the console.warn. + // TODO: find out if this is doable using `app.config.warnHandler` (does not appear + // work right now). https://github.com/vuejs/vue-test-utils-next/issues/197 + const consoleWarnSave = console.warn + console.warn = (msg: string, ...rest: unknown[]) => { + if (msg.includes('[Vue warn]: Component emitted event')) { + return + } else { + consoleWarnSave(msg, ...rest) + } + } originalEmit(event, ...args) + console.warn = consoleWarnSave return [event, ...args] } } diff --git a/yarn.lock b/yarn.lock index 5e757c7f3..fb79affd8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1207,55 +1207,36 @@ dependencies: "@types/yargs-parser" "*" -"@vue/compiler-core@3.0.0-rc.5": - version "3.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-rc.5.tgz#dd4f1816fcae34a81bc60e584f97993cad284d54" - integrity sha512-dNz5AObEYg0Oglw3emIsBhTAOVfObrfxDaAzR0UTRDDq+Ohfr6KTSaVQAH88Ym+oa08ZlLZBFc6ARe9doAOIxg== +"@vue/compiler-core@3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-rc.10.tgz#a76f713fb0462429ec0ec10a472fff1f539c5772" + integrity sha512-kQzHzRsM0NPAWHeqSTb2J4VsHhjRkGeLTsGzeMnW+sojgTnS3T94KacwvYgVS4qeZAKiDq0bMNZoJWrHVQ3T8g== dependencies: "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" - "@vue/shared" "3.0.0-rc.5" + "@vue/shared" "3.0.0-rc.10" estree-walker "^2.0.1" source-map "^0.6.1" -"@vue/compiler-core@3.0.0-rc.7": - version "3.0.0-rc.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-rc.7.tgz#119f669ee59c96124c280a6e94187f3bad09ea8a" - integrity sha512-bzk7uGKPEAKC4XHnHvmMUui9MASOVK7e4xgDz6oOBWqo1mnvqk1YnNZzY+0XMaCr4PFOFqHw739JmzJb6SBqUg== +"@vue/compiler-dom@3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-rc.10.tgz#dd1380d1ee61170de76f9eb91e0d8ac7985f0ae0" + integrity sha512-pqIUf5leZm0P9379utrRSVBMxhV8XaqJTEFFp5etCtbEa/H5ALs29EjFMtMcm9sQaVkZlKLu86mgIacbYB9Q3w== dependencies: - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - "@vue/shared" "3.0.0-rc.7" - estree-walker "^2.0.1" - source-map "^0.6.1" + "@vue/compiler-core" "3.0.0-rc.10" + "@vue/shared" "3.0.0-rc.10" -"@vue/compiler-dom@3.0.0-rc.5": - version "3.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-rc.5.tgz#83905e8601123a3654b90fbd80708a16530ce21a" - integrity sha512-z8n+R1GhFnWuKURLYxfVSEfP7nSNM91qteobxwys55fhlZZuReouMnUwgrn+ois/IL6RdFlT9H+n4+N6yLrdJA== - dependencies: - "@vue/compiler-core" "3.0.0-rc.5" - "@vue/shared" "3.0.0-rc.5" - -"@vue/compiler-dom@3.0.0-rc.7": - version "3.0.0-rc.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-rc.7.tgz#0e193767243485db314495e17d8fd56370b628e1" - integrity sha512-wE8YmkN3ISodjijzG44YiRgbcb7skqdRbhoYgABGz8uHvNSMGPLrM80cRosgLoGlcgxDPxj0xaEAczBunJYV2g== - dependencies: - "@vue/compiler-core" "3.0.0-rc.7" - "@vue/shared" "3.0.0-rc.7" - -"@vue/compiler-sfc@^3.0.0-rc.5": - version "3.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.0-rc.5.tgz#374e52a6fbf8fb9aee1213026050a0f1c496fecf" - integrity sha512-huoIFEfFCJxHcpoByAUQti7CIwJdHPLJXKuy2HG7J1B+IEKugtBdF50CLH35ZD8dWM0nyOMFFqTbO7i6CCjL3Q== +"@vue/compiler-sfc@^3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.0-rc.10.tgz#4351ece66cdf4d758877482f69421c43d994dbaf" + integrity sha512-VIJ+VXqeM7WoRNgD9uYSARVb6CYq+JS2NNHfeerfNc7Uk3pjYHRv1MwEicAvN6zWFm5GLC1ZYTVD+WFg3xGAkQ== dependencies: "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" - "@vue/compiler-core" "3.0.0-rc.5" - "@vue/compiler-dom" "3.0.0-rc.5" - "@vue/compiler-ssr" "3.0.0-rc.5" - "@vue/shared" "3.0.0-rc.5" + "@vue/compiler-core" "3.0.0-rc.10" + "@vue/compiler-dom" "3.0.0-rc.10" + "@vue/compiler-ssr" "3.0.0-rc.10" + "@vue/shared" "3.0.0-rc.10" consolidate "^0.15.1" estree-walker "^2.0.1" hash-sum "^2.0.0" @@ -1267,47 +1248,42 @@ postcss-selector-parser "^6.0.2" source-map "^0.6.1" -"@vue/compiler-ssr@3.0.0-rc.5": - version "3.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.0.0-rc.5.tgz#878406c59daff362ecdcb199fb9467a769ca8de5" - integrity sha512-OU5Vl2+bCDMImS9OeCVnl4lfxZ3/sopdwX2SrUWVKQvCxmmmlyWvoVkC6nNGCs/MrOmIMhKmL6etgzLTWyCkUg== +"@vue/compiler-ssr@3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.0.0-rc.10.tgz#95a5f6b65b19a514c94f056994ec144b3b1b03ae" + integrity sha512-JBPil8sO5j7puB8acX2CQMRXEYB/EP8PoEur7RcF/+aqATI7C4yqWcSLC5TRJpigj6xE6ku6sx8om+j7ZHvgBw== dependencies: - "@vue/compiler-dom" "3.0.0-rc.5" - "@vue/shared" "3.0.0-rc.5" + "@vue/compiler-dom" "3.0.0-rc.10" + "@vue/shared" "3.0.0-rc.10" -"@vue/reactivity@3.0.0-rc.7": - version "3.0.0-rc.7" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0-rc.7.tgz#fd5fda961c57a8065c6408170e06808a39f801a2" - integrity sha512-j8wUuc131JrHvQzEWjlRMYHadRLhGaubIZHR+4QO/xwvNIdJWK8zQd9iqxizjBW0E1MhrZkDbsiClNN8lq/ILQ== +"@vue/reactivity@3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0-rc.10.tgz#34d5f51bcc5a7c36e27d7a9c1bd7a3d25ffa7c56" + integrity sha512-mkUZfOJlbqGZx2cARmhCs5r2+xLJPL7VFNagmlA3Fd66ZXBc3ZvTQdYsY4VUbYJFe5ByIzqu9TZiAkzXY+JVaA== dependencies: - "@vue/shared" "3.0.0-rc.7" + "@vue/shared" "3.0.0-rc.10" -"@vue/runtime-core@3.0.0-rc.7": - version "3.0.0-rc.7" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0-rc.7.tgz#739f2c21dfdc509b0b05fefe2d84eafd7b990075" - integrity sha512-xY+3Mw+3Nb8BxfYftQug3UAUHPJPvbhNkyVuCMVgBRBsZIFbiL6F+gy22Wd7Q6zgWagUQCtH1FDrPZARj6tySg== +"@vue/runtime-core@3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0-rc.10.tgz#9055aef5113cbc328aaec29760c2151e0ed3cf40" + integrity sha512-VK/kq4gDDoqZ45CVwdbLLpikXLYLCt6YLhdgXX3fhf20gvPqrbEZv1ZNLruNnhhTpf9cLyU4tZ18DHeaUYPziw== dependencies: - "@vue/reactivity" "3.0.0-rc.7" - "@vue/shared" "3.0.0-rc.7" + "@vue/reactivity" "3.0.0-rc.10" + "@vue/shared" "3.0.0-rc.10" -"@vue/runtime-dom@3.0.0-rc.7": - version "3.0.0-rc.7" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0-rc.7.tgz#9a89560b30a7f27422e2934281a9e5947f7938f9" - integrity sha512-tgLl/tSIdovP/6uEzKrhwG5MwFu0yJ3l0bPUCyyFJM4tnnHiRtr9Zsn6GVDZYwImtBgBwByqBMML8ZYlVEqH9w== +"@vue/runtime-dom@3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0-rc.10.tgz#50f95cb991483a4262163723320967ad17bb321f" + integrity sha512-bH4GuneHt3FQ+/21jba5orM/CO9N1cnT7J3wtrxopFJ4/4H5cvHXyG6v+ZVTu1d733Ij/6yMRA7xbtfi9a4zJw== dependencies: - "@vue/runtime-core" "3.0.0-rc.7" - "@vue/shared" "3.0.0-rc.7" + "@vue/runtime-core" "3.0.0-rc.10" + "@vue/shared" "3.0.0-rc.10" csstype "^2.6.8" -"@vue/shared@3.0.0-rc.5": - version "3.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-rc.5.tgz#cea2378e3e37363ddc1f5dd158edc9c9b5b3fff0" - integrity sha512-ZhcgGzBpp+pUzisZgQpM4ctIGgLpYjBj7/rZfbhEPxFHF/BuTV2jmhXvAl8aF9xDAejIcw85xCy92gDSwKtPag== - -"@vue/shared@3.0.0-rc.7": - version "3.0.0-rc.7" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-rc.7.tgz#62054a314105019efab590f767db528c8c603954" - integrity sha512-wRqe6DvR9UIH4Il4bxMIbuGupWFtJW+PZKqgclYjuO+zWNQEC7hC5OxONgXeGcv1h4KtfJsc8wSU31hxok9XAQ== +"@vue/shared@3.0.0-rc.10": + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-rc.10.tgz#e7ab62abcabbfc738545902b96a3aa78f59f3286" + integrity sha512-fI6gVhhgb3cAmEkY4oeVVA2hWZ2xvkgogHdBI5PL7gSvZnOB6XZ2eQGsYjC4W+7BegvEkoMBuZsFXVa4ZQ07XQ== abab@^2.0.0, abab@^2.0.3: version "2.0.3" @@ -5992,14 +5968,14 @@ vue-router@^4.0.0-alpha.14: resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.0-alpha.14.tgz#4bc5fed1db61b8d04fd95ad9c499c7428f039a0e" integrity sha512-ydWSXxXAsTCiJ31V4x4ZAKI1CdpPMhf7b2LPi4AmG5SCgduu1zf+LhzWWHXmgbmheEiJpfecigVIZp4ABpZJmw== -vue@^3.0.0-rc.7: - version "3.0.0-rc.7" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0-rc.7.tgz#4b98438cc908708d87d4a0a11bd4497e5385ff66" - integrity sha512-WX7i6yI0VGzI2mwlGqfISDbi/fNAuc0QEOcF4NH4IEdWFUWCbMMUJ6frYCgRd3FzqzPJwuV8niXKhFL28FnQ7g== +vue@^3.0.0-rc.10: + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0-rc.10.tgz#31298a757b4fad6ee8973d0fa27c4fde8574bd01" + integrity sha512-nRsyIQtOWLDMBb5dsPwg/WdIqznCMVWN6O6wJSzhseKC768wHlZKcJ7SPHhWPid9wi3Ykhtl9vtgvxTK/qICkw== dependencies: - "@vue/compiler-dom" "3.0.0-rc.7" - "@vue/runtime-dom" "3.0.0-rc.7" - "@vue/shared" "3.0.0-rc.7" + "@vue/compiler-dom" "3.0.0-rc.10" + "@vue/runtime-dom" "3.0.0-rc.10" + "@vue/shared" "3.0.0-rc.10" vuex@^4.0.0-beta.1: version "4.0.0-beta.1"