From 7685e8df4b87989bbab045948988a077f38f5c6c Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Sat, 22 Jan 2022 11:17:14 +0900 Subject: [PATCH] [Tests] `no-nodejs-modules`: add tests for node protocol URL --- tests/src/rules/no-nodejs-modules.js | 62 ++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/tests/src/rules/no-nodejs-modules.js b/tests/src/rules/no-nodejs-modules.js index 3587a71dca..1b367a7efb 100644 --- a/tests/src/rules/no-nodejs-modules.js +++ b/tests/src/rules/no-nodejs-modules.js @@ -1,6 +1,7 @@ import { test } from '../utils'; import { RuleTester } from 'eslint'; +const isCore = require('is-core-module'); const ruleTester = new RuleTester(); const rule = require('rules/no-nodejs-modules'); @@ -10,7 +11,7 @@ const error = message => ({ }); ruleTester.run('no-nodejs-modules', rule, { - valid: [ + valid: [].concat( test({ code: 'import _ from "lodash"' }), test({ code: 'import find from "lodash.find"' }), test({ code: 'import foo from "./foo"' }), @@ -55,8 +56,38 @@ ruleTester.run('no-nodejs-modules', rule, { allow: ['path', 'events'], }], }), - ], - invalid: [ + isCore('node:events') ? test({ + code: 'import events from "node:events"', + options: [{ + allow: ['node:events'], + }], + }): [], + isCore('node:path') ? test({ + code: 'import path from "node:path"', + options: [{ + allow: ['node:path'], + }], + }) : [], + isCore('node:events') ? test({ + code: 'var events = require("node:events")', + options: [{ + allow: ['node:events'], + }], + }) : [], + isCore('node:path') ? test({ + code: 'var path = require("node:path")', + options: [{ + allow: ['node:path'], + }], + }) : [], + isCore('node:events') ? test({ + code: 'import path from "node:path";import events from "node:events"', + options: [{ + allow: ['node:path', 'node:events'], + }], + }) : [], + ), + invalid: [].concat( test({ code: 'import path from "path"', errors: [error('Do not import Node.js builtin module "path"')], @@ -80,5 +111,28 @@ ruleTester.run('no-nodejs-modules', rule, { }], errors: [error('Do not import Node.js builtin module "fs"')], }), - ], + isCore('node:path') ? test({ + code: 'import path from "node:path"', + errors: [error('Do not import Node.js builtin module "node:path"')], + }) : [], + isCore('node:fs') ? test({ + code: 'import fs from "node:fs"', + errors: [error('Do not import Node.js builtin module "node:fs"')], + }) : [], + isCore('node:path') ? test({ + code: 'var path = require("node:path")', + errors: [error('Do not import Node.js builtin module "node:path"')], + }) : [], + isCore('node:fs') ? test({ + code: 'var fs = require("node:fs")', + errors: [error('Do not import Node.js builtin module "node:fs"')], + }) : [], + isCore('node:fs') ? test({ + code: 'import fs from "node:fs"', + options: [{ + allow: ['node:path'], + }], + errors: [error('Do not import Node.js builtin module "node:fs"')], + }) : [], + ), });