From 2057c05fabdb0924b3bd0bd50c2cf434c7b67f9e Mon Sep 17 00:00:00 2001 From: Kristjan Tammekivi Date: Tue, 27 Apr 2021 14:05:15 +0300 Subject: [PATCH] [Tests] add passing `no-unused-modules` tests --- docs/rules/no-extraneous-dependencies.md | 2 +- .../no-unused-modules/file-destructured-1.js | 2 ++ .../no-unused-modules/file-destructured-2.js | 1 + tests/src/rules/no-unused-modules.js | 29 +++++++++++++++---- 4 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 tests/files/no-unused-modules/file-destructured-1.js create mode 100644 tests/files/no-unused-modules/file-destructured-2.js diff --git a/docs/rules/no-extraneous-dependencies.md b/docs/rules/no-extraneous-dependencies.md index e9743a761..cdc0a913f 100644 --- a/docs/rules/no-extraneous-dependencies.md +++ b/docs/rules/no-extraneous-dependencies.md @@ -1,7 +1,7 @@ # import/no-extraneous-dependencies: Forbid the use of extraneous packages Forbid the import of external modules that are not declared in the `package.json`'s `dependencies`, `devDependencies`, `optionalDependencies`, `peerDependencies`, or `bundledDependencies`. -The closest parent `package.json` will be used. If no `package.json` is found, the rule will not lint anything. This behaviour can be changed with the rule option `packageDir`. +The closest parent `package.json` will be used. If no `package.json` is found, the rule will not lint anything. This behavior can be changed with the rule option `packageDir`. Modules have to be installed for this rule to work. diff --git a/tests/files/no-unused-modules/file-destructured-1.js b/tests/files/no-unused-modules/file-destructured-1.js new file mode 100644 index 000000000..f2223ac3b --- /dev/null +++ b/tests/files/no-unused-modules/file-destructured-1.js @@ -0,0 +1,2 @@ +export const { destructured } = {}; +export const { destructured2 } = {}; diff --git a/tests/files/no-unused-modules/file-destructured-2.js b/tests/files/no-unused-modules/file-destructured-2.js new file mode 100644 index 000000000..06dc48a9d --- /dev/null +++ b/tests/files/no-unused-modules/file-destructured-2.js @@ -0,0 +1 @@ +import { destructured } from './file-destructured-1'; \ No newline at end of file diff --git a/tests/src/rules/no-unused-modules.js b/tests/src/rules/no-unused-modules.js index cd054ecb9..283fa3e98 100644 --- a/tests/src/rules/no-unused-modules.js +++ b/tests/src/rules/no-unused-modules.js @@ -500,7 +500,7 @@ describe('renameDefault', () => { }); }); -describe('test behaviour for new file', () => { +describe('test behavior for new file', () => { before(() => { fs.writeFileSync(testFilePath('./no-unused-modules/file-added-0.js'), '', { encoding: 'utf8' }); }); @@ -588,7 +588,7 @@ describe('test behaviour for new file', () => { }); - describe('test behaviour for new file', () => { + describe('test behavior for new file', () => { before(() => { fs.writeFileSync(testFilePath('./no-unused-modules/file-added-1.js'), '', { encoding: 'utf8' }); }); @@ -619,7 +619,7 @@ describe('test behaviour for new file', () => { }); }); -describe('test behaviour for new file', () => { +describe('test behavior for new file', () => { before(() => { fs.writeFileSync(testFilePath('./no-unused-modules/file-added-2.js'), '', { encoding: 'utf8' }); }); @@ -641,7 +641,7 @@ describe('test behaviour for new file', () => { }); }); -describe('test behaviour for new file', () => { +describe('test behavior for new file', () => { before(() => { fs.writeFileSync(testFilePath('./no-unused-modules/file-added-3.js'), '', { encoding: 'utf8' }); }); @@ -663,7 +663,26 @@ describe('test behaviour for new file', () => { }); }); -describe('test behaviour for new file', () => { +describe('test behavior for destructured exports', () => { + ruleTester.run('no-unused-modules', rule, { + valid: [ + test({ options: unusedExportsOptions, + code: `import { destructured } from '${testFilePath('./no-unused-modules/file-destructured-1.js')}'`, + filename: testFilePath('./no-unused-modules/file-destructured-2.js') }), + test({ options: unusedExportsOptions, + code: `export const { destructured } = {};`, + filename: testFilePath('./no-unused-modules/file-destructured-1.js') }), + ], + invalid: [ + test({ options: unusedExportsOptions, + code: `export const { destructured2 } = {};`, + filename: testFilePath('./no-unused-modules/file-destructured-1.js'), + errors: [`exported declaration 'destructured2' not used within other modules`] }), + ], + }); +}); + +describe('test behavior for new file', () => { before(() => { fs.writeFileSync(testFilePath('./no-unused-modules/file-added-4.js.js'), '', { encoding: 'utf8' }); });