From d2ea27e2d40f839cb98d96558f18d8afeecbb148 Mon Sep 17 00:00:00 2001 From: Armano Date: Tue, 4 Dec 2018 03:30:10 +0100 Subject: [PATCH] Fix: filters validation in `valid-v-model` --- lib/rules/valid-v-model.js | 9 +++++++-- tests/lib/rules/valid-v-model.js | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/rules/valid-v-model.js b/lib/rules/valid-v-model.js index d004ef3ba..c83bc06c1 100644 --- a/lib/rules/valid-v-model.js +++ b/lib/rules/valid-v-model.js @@ -44,9 +44,12 @@ function isValidElement (node) { * @returns {boolean} `true` if the node can be LHS. */ function isLhs (node) { - return node != null && ( + return node !== null && ( node.type === 'Identifier' || - node.type === 'MemberExpression' + node.type === 'MemberExpression' || ( + node.type === 'VFilterSequenceExpression' && + isLhs(node.expression) + ) ) } @@ -130,6 +133,7 @@ module.exports = { }) } } + if (!utils.hasAttributeValue(node)) { context.report({ node, @@ -137,6 +141,7 @@ module.exports = { message: "'v-model' directives require that attribute value." }) } + if (node.value) { if (!isLhs(node.value.expression)) { context.report({ diff --git a/tests/lib/rules/valid-v-model.js b/tests/lib/rules/valid-v-model.js index f5abd2dde..a00344aa6 100644 --- a/tests/lib/rules/valid-v-model.js +++ b/tests/lib/rules/valid-v-model.js @@ -114,6 +114,10 @@ tester.run('valid-v-model', rule, { { filename: 'test.vue', code: '' + }, + { + filename: 'test.vue', + code: '' } ], invalid: [