diff --git a/src/rules/no-unused-modules.js b/src/rules/no-unused-modules.js index 60416d21cd..33b4dec5a8 100644 --- a/src/rules/no-unused-modules.js +++ b/src/rules/no-unused-modules.js @@ -656,13 +656,12 @@ module.exports = { if (astNode.source) { resolvedPath = resolve(astNode.source.raw.replace(/('|")/g, ''), context) astNode.specifiers.forEach(specifier => { - let name - if (specifier.exported.name === DEFAULT) { - name = IMPORT_DEFAULT_SPECIFIER + const name = specifier.local.name + if (specifier.local.name === DEFAULT) { + newDefaultImports.add(resolvedPath) } else { - name = specifier.local.name + newImports.set(name, resolvedPath) } - newImports.set(name, resolvedPath) }) } } diff --git a/tests/files/no-unused-modules/renameDefault-2/ComponentA.js b/tests/files/no-unused-modules/renameDefault-2/ComponentA.js new file mode 100644 index 0000000000..b4517920fc --- /dev/null +++ b/tests/files/no-unused-modules/renameDefault-2/ComponentA.js @@ -0,0 +1 @@ +export default function ComponentA() {} diff --git a/tests/files/no-unused-modules/renameDefault-2/ComponentB.js b/tests/files/no-unused-modules/renameDefault-2/ComponentB.js new file mode 100644 index 0000000000..72e0f2ee7a --- /dev/null +++ b/tests/files/no-unused-modules/renameDefault-2/ComponentB.js @@ -0,0 +1 @@ +export default function ComponentB() {} diff --git a/tests/files/no-unused-modules/renameDefault-2/components.js b/tests/files/no-unused-modules/renameDefault-2/components.js new file mode 100644 index 0000000000..5a72952a3e --- /dev/null +++ b/tests/files/no-unused-modules/renameDefault-2/components.js @@ -0,0 +1,2 @@ +export { default as ComponentA } from "./ComponentA"; +export { default as ComponentB } from "./ComponentB"; diff --git a/tests/files/no-unused-modules/renameDefault-2/usage.js b/tests/files/no-unused-modules/renameDefault-2/usage.js new file mode 100644 index 0000000000..7298baa559 --- /dev/null +++ b/tests/files/no-unused-modules/renameDefault-2/usage.js @@ -0,0 +1 @@ +import { ComponentA, ComponentB } from './components' diff --git a/tests/files/no-unused-modules/renameDefault/Component.js b/tests/files/no-unused-modules/renameDefault/Component.js new file mode 100644 index 0000000000..c6be8faf00 --- /dev/null +++ b/tests/files/no-unused-modules/renameDefault/Component.js @@ -0,0 +1 @@ +export default function Component() {} diff --git a/tests/files/no-unused-modules/renameDefault/components.js b/tests/files/no-unused-modules/renameDefault/components.js new file mode 100644 index 0000000000..4a877cb1f8 --- /dev/null +++ b/tests/files/no-unused-modules/renameDefault/components.js @@ -0,0 +1 @@ +export { default as Component } from './Component' diff --git a/tests/files/no-unused-modules/renameDefault/usage.js b/tests/files/no-unused-modules/renameDefault/usage.js new file mode 100644 index 0000000000..6ee988988b --- /dev/null +++ b/tests/files/no-unused-modules/renameDefault/usage.js @@ -0,0 +1 @@ +import { Component } from './components' diff --git a/tests/src/rules/no-unused-modules.js b/tests/src/rules/no-unused-modules.js index d409e41ed7..e880b14c3b 100644 --- a/tests/src/rules/no-unused-modules.js +++ b/tests/src/rules/no-unused-modules.js @@ -442,6 +442,31 @@ ruleTester.run('no-unused-modules', rule, { invalid: [], }) +describe('renameDefault', () => { + ruleTester.run('no-unused-modules', rule, { + valid: [ + test({ options: unusedExportsOptions, + code: 'export { default as Component } from "./Component"', + filename: testFilePath('./no-unused-modules/renameDefault/components.js')}), + test({ options: unusedExportsOptions, + code: 'export default function Component() {}', + filename: testFilePath('./no-unused-modules/renameDefault/Component.js')}), + ], + invalid: [], + }) + ruleTester.run('no-unused-modules', rule, { + valid: [ + test({ options: unusedExportsOptions, + code: 'export { default as ComponentA } from "./ComponentA";export { default as ComponentB } from "./ComponentB";', + filename: testFilePath('./no-unused-modules/renameDefault-2/components.js')}), + test({ options: unusedExportsOptions, + code: 'export default function ComponentA() {};', + filename: testFilePath('./no-unused-modules/renameDefault-2/ComponentA.js')}), + ], + invalid: [], + }) +}) + describe('test behaviour for new file', () => { before(() => { fs.writeFileSync(testFilePath('./no-unused-modules/file-added-0.js'), '', {encoding: 'utf8'})