From 28517ff9d671b69a17ebbc739f63f7bb7ed8d9ff Mon Sep 17 00:00:00 2001 From: sosukesuzuki Date: Sat, 22 Jan 2022 10:51:50 +0900 Subject: [PATCH] [Tests] `no-nodejs-modules`: add tests for node protocol URL --- tests/src/rules/no-nodejs-modules.js | 58 ++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/tests/src/rules/no-nodejs-modules.js b/tests/src/rules/no-nodejs-modules.js index 3587a71dca..408007efe2 100644 --- a/tests/src/rules/no-nodejs-modules.js +++ b/tests/src/rules/no-nodejs-modules.js @@ -1,10 +1,13 @@ import { test } from '../utils'; import { RuleTester } from 'eslint'; +import semver from 'semver'; const ruleTester = new RuleTester(); const rule = require('rules/no-nodejs-modules'); +const supportsNodePrefix = semver.satisfies(process.versions.node, '^14.18 || >= 16', { includePrerelease: true }); + const error = message => ({ message, }); @@ -55,6 +58,37 @@ ruleTester.run('no-nodejs-modules', rule, { allow: ['path', 'events'], }], }), + ...(supportsNodePrefix ? [ + test({ + code: 'import events from "node:events"', + options: [{ + allow: ['node:events'], + }], + }), + test({ + code: 'import path from "node:path"', + options: [{ + allow: ['node:path'], + }], + }), + test({ + code: 'var events = require("node:events")', + options: [{ + allow: ['node:events'], + }], + }), + test({ + code: 'var path = require("node:path")', + options: [{ + allow: ['node:path'], + }], + }), + test({ + code: 'import path from "node:path";import events from "node:events"', + options: [{ + allow: ['node:path', 'node:events'], + }], + })] : []), ], invalid: [ test({ @@ -80,5 +114,29 @@ ruleTester.run('no-nodejs-modules', rule, { }], errors: [error('Do not import Node.js builtin module "fs"')], }), + ...(supportsNodePrefix ? [ + test({ + code: 'import path from "node:path"', + errors: [error('Do not import Node.js builtin module "node:path"')], + }), + test({ + code: 'import fs from "node:fs"', + errors: [error('Do not import Node.js builtin module "node:fs"')], + }), + test({ + code: 'var path = require("node:path")', + errors: [error('Do not import Node.js builtin module "node:path"')], + }), + test({ + code: 'var fs = require("node:fs")', + errors: [error('Do not import Node.js builtin module "node:fs"')], + }), + test({ + code: 'import fs from "node:fs"', + options: [{ + allow: ['node:path'], + }], + errors: [error('Do not import Node.js builtin module "node:fs"')], + })] : []), ], });