From d626ec1b589559507637a3e5617ae88fafe0c27f Mon Sep 17 00:00:00 2001 From: arrudaje Date: Sun, 18 Oct 2020 15:14:25 +0200 Subject: [PATCH] Make rule vue/no-unregistered-components ignore recursive components (#1305) * Add tests * Modify rule to include `ignoreRecursive` argument * Modify docs * Address PR comments * empty commit * Refactor no-unregistered-components to always bypass recursive components * Update docs Co-authored-by: Joao Elias Arruda --- lib/rules/no-unregistered-components.js | 9 +++ tests/lib/rules/no-unregistered-components.js | 65 +++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/lib/rules/no-unregistered-components.js b/lib/rules/no-unregistered-components.js index be892a6e6..7ec74e503 100644 --- a/lib/rules/no-unregistered-components.js +++ b/lib/rules/no-unregistered-components.js @@ -181,6 +181,15 @@ module.exports = { }, utils.executeOnVue(context, (obj) => { registeredComponents.push(...utils.getRegisteredComponents(obj)) + + const nameProperty = utils.findProperty(obj, 'name') + + if (nameProperty) { + registeredComponents.push({ + node: nameProperty, + name: nameProperty.value.value + }) + } }) ) } diff --git a/tests/lib/rules/no-unregistered-components.js b/tests/lib/rules/no-unregistered-components.js index da9e37ee2..367026909 100644 --- a/tests/lib/rules/no-unregistered-components.js +++ b/tests/lib/rules/no-unregistered-components.js @@ -393,6 +393,71 @@ tester.run('no-unregistered-components', rule, { } ` + }, + { + filename: 'test.vue', + code: ` + + + ` + }, + { + filename: 'test.vue', + code: ` + + + ` + }, + { + filename: 'test.vue', + code: ` + + + ` + }, + { + filename: 'test.vue', + code: ` + + + ` + }, + { + filename: 'test.vue', + code: ` + + + ` } ], invalid: [