node/test/parallel/test-eslint-required-modules.js
Michaël Zasso 7e6d92c485
tools: update ESLint to v9 and use flat config
Closes: https://github.com/nodejs/node/issues/52567
PR-URL: https://github.com/nodejs/node/pull/52780
Fixes: https://github.com/nodejs/node/issues/52567
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2024-05-23 19:45:18 +00:00

57 lines
1.3 KiB
JavaScript

'use strict';
const common = require('../common');
if ((!common.hasCrypto) || (!common.hasIntl)) {
common.skip('ESLint tests require crypto and Intl');
}
common.skipIfEslintMissing();
const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
const rule = require('../../tools/eslint-rules/required-modules');
new RuleTester({
languageOptions: {
sourceType: 'script',
},
}).run('required-modules', rule, {
valid: [
{
code: 'require("common")',
options: [{ common: 'common' }]
},
{
code: 'foo',
options: []
},
{
code: 'require("common")',
options: [{ common: 'common(/index\\.(m)?js)?$' }]
},
{
code: 'require("common/index.js")',
options: [{ common: 'common(/index\\.(m)?js)?$' }]
},
],
invalid: [
{
code: 'foo',
options: [{ common: 'common' }],
errors: [{ message: 'Mandatory module "common" must be loaded.' }]
},
{
code: 'require("common/fixtures.js")',
options: [{ common: 'common(/index\\.(m)?js)?$' }],
errors: [{
message:
'Mandatory module "common" must be loaded.'
}]
},
{
code: 'require("somethingElse")',
options: [{ common: 'common' }],
errors: [{ message: 'Mandatory module "common" must be loaded.' }]
},
]
});