diff --git a/lib/rules/extends-correct-class.js b/lib/rules/extends-correct-class.js index 7c4c48f..79735b8 100644 --- a/lib/rules/extends-correct-class.js +++ b/lib/rules/extends-correct-class.js @@ -51,6 +51,7 @@ module.exports = { [s.customElements.define](node) { const classRef = classes.get(node.arguments[1]) if (!classRef) return + if (classRef.type === 'ImportDefaultSpecifier' || classRef.type === 'ImportSpecifier') return const extendsTag = getExtendsOption(node.arguments[2]) // Allowed super names is an array of allowed names. diff --git a/test/extends-correct-class.js b/test/extends-correct-class.js index ddd8b28..4917fbb 100644 --- a/test/extends-correct-class.js +++ b/test/extends-correct-class.js @@ -1,7 +1,7 @@ const rule = require('../lib/rules/extends-correct-class') const RuleTester = require('eslint').RuleTester -const ruleTester = new RuleTester({env: {es2020: true}}) +const ruleTester = new RuleTester({env: {es2020: true}, parserOptions: {sourceType: 'module'}}) ruleTester.run('extends-correct-class', rule, { valid: [ @@ -16,6 +16,12 @@ ruleTester.run('extends-correct-class', rule, { code: 'customElements.define("foo-bar", class extends HTMLElement {})', options: [{allowedSuperNames: ['HTMLGitHubElement']}], }, + { + code: 'import Foo from "other";customElements.define("foo-bar", Foo)', + }, + { + code: 'import {Foo} from "other";customElements.define("foo-bar", Foo)', + }, ], invalid: [ {