From dc917d6cea4d801d2f60e7414483e9cd110c0601 Mon Sep 17 00:00:00 2001 From: Ataias Pereira Reis Date: Thu, 19 Aug 2021 12:12:21 -0300 Subject: [PATCH] fix(test-utils): verify object not null for typeof Using vue-test-utils may cause several messages of the sort ``` [Vue warn]: Error in render: "TypeError: Cannot read property 'template' of null" ``` Such messages stemmed from the `isComponentOptions` method call. It seems it received a null object and `typeof null` is object, so this error propagates to users of the library. This patch does not look for the reason a null object was sent in the first place, but it avoids the error propagation. close #1805 --- packages/server-test-utils/dist/vue-server-test-utils.js | 2 +- packages/shared/validators.js | 2 +- packages/test-utils/dist/vue-test-utils.iife.js | 2 +- packages/test-utils/dist/vue-test-utils.js | 2 +- packages/test-utils/dist/vue-test-utils.umd.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/server-test-utils/dist/vue-server-test-utils.js b/packages/server-test-utils/dist/vue-server-test-utils.js index a776b04a8..8645d281c 100644 --- a/packages/server-test-utils/dist/vue-server-test-utils.js +++ b/packages/server-test-utils/dist/vue-server-test-utils.js @@ -1806,7 +1806,7 @@ function isDynamicComponent(c) { } function isComponentOptions(c) { - return typeof c === 'object' && (c.template || c.render) + return c !== null && typeof c === 'object' && (c.template || c.render) } function isFunctionalComponent(c) { diff --git a/packages/shared/validators.js b/packages/shared/validators.js index 64a15b5e3..b11b1ae9e 100644 --- a/packages/shared/validators.js +++ b/packages/shared/validators.js @@ -89,7 +89,7 @@ export function isDynamicComponent(c: any) { } export function isComponentOptions(c: any) { - return typeof c === 'object' && (c.template || c.render) + return c !== null && typeof c === 'object' && (c.template || c.render) } export function isFunctionalComponent(c: any) { diff --git a/packages/test-utils/dist/vue-test-utils.iife.js b/packages/test-utils/dist/vue-test-utils.iife.js index 3016098c3..4e8399c14 100644 --- a/packages/test-utils/dist/vue-test-utils.iife.js +++ b/packages/test-utils/dist/vue-test-utils.iife.js @@ -1953,7 +1953,7 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { } function isComponentOptions(c) { - return typeof c === 'object' && (c.template || c.render) + return c !== null && typeof c === 'object' && (c.template || c.render) } function isFunctionalComponent(c) { diff --git a/packages/test-utils/dist/vue-test-utils.js b/packages/test-utils/dist/vue-test-utils.js index de7a46dc4..562c61f89 100644 --- a/packages/test-utils/dist/vue-test-utils.js +++ b/packages/test-utils/dist/vue-test-utils.js @@ -1957,7 +1957,7 @@ function isDynamicComponent(c) { } function isComponentOptions(c) { - return typeof c === 'object' && (c.template || c.render) + return c !== null && typeof c === 'object' && (c.template || c.render) } function isFunctionalComponent(c) { diff --git a/packages/test-utils/dist/vue-test-utils.umd.js b/packages/test-utils/dist/vue-test-utils.umd.js index 1d1f11d6c..710c70793 100644 --- a/packages/test-utils/dist/vue-test-utils.umd.js +++ b/packages/test-utils/dist/vue-test-utils.umd.js @@ -1956,7 +1956,7 @@ } function isComponentOptions(c) { - return typeof c === 'object' && (c.template || c.render) + return c !== null && typeof c === 'object' && (c.template || c.render) } function isFunctionalComponent(c) {