From 1643f7c26b26e43136dce8388334f716a427c7fc Mon Sep 17 00:00:00 2001 From: Jared Hobbs Date: Tue, 19 Dec 2017 11:54:31 -0800 Subject: [PATCH 1/2] add test for prop default with object spread --- tests/lib/rules/require-default-prop.js | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/lib/rules/require-default-prop.js b/tests/lib/rules/require-default-prop.js index 153e80e1b..5aa7d71aa 100644 --- a/tests/lib/rules/require-default-prop.js +++ b/tests/lib/rules/require-default-prop.js @@ -68,6 +68,34 @@ ruleTester.run('require-default-prop', rule, { } `, parserOptions + }, + { + filename: 'test.vue', + code: ` + const x = { + type: Object, + default() { + return { + foo: 1, + bar: 2 + } + } + } + export default { + props: { + a: { + ...x, + default() { + return { + ...x.default(), + baz: 3 + } + } + } + } + } + `, + parserOptions } ], From 7a0412d84323e9ca52c1a368dae7a5b6a6ab0fe6 Mon Sep 17 00:00:00 2001 From: Jared Hobbs Date: Tue, 19 Dec 2017 11:56:04 -0800 Subject: [PATCH 2/2] fixes #287: check for key --- lib/rules/require-default-prop.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rules/require-default-prop.js b/lib/rules/require-default-prop.js index 0cf546982..dd29e8d43 100644 --- a/lib/rules/require-default-prop.js +++ b/lib/rules/require-default-prop.js @@ -43,13 +43,13 @@ module.exports = { } /** - * Checks if the passed prop has a defualt value + * Checks if the passed prop has a default value * @param {Property} prop - Property AST node for a single prop * @return {boolean} */ function propHasDefault (prop) { const propDefaultNode = prop.value.properties - .find(p => p.key.name === 'default') + .find(p => p.key && p.key.name === 'default') return Boolean(propDefaultNode) }