11import { test } from '../utils' ;
22
33import { RuleTester } from 'eslint' ;
4+ import semver from 'semver' ;
45
56const ruleTester = new RuleTester ( ) ;
67const rule = require ( 'rules/no-nodejs-modules' ) ;
78
9+ const supportsNodePrefix = semver . satisfies ( process . versions . node , '^14.18 || >= 16' , { includePrerelease : true } ) ;
10+
811const error = message => ( {
912 message,
1013} ) ;
@@ -55,6 +58,37 @@ ruleTester.run('no-nodejs-modules', rule, {
5558 allow : [ 'path' , 'events' ] ,
5659 } ] ,
5760 } ) ,
61+ ...( supportsNodePrefix ? [
62+ test ( {
63+ code : 'import events from "node:events"' ,
64+ options : [ {
65+ allow : [ 'node:events' ] ,
66+ } ] ,
67+ } ) ,
68+ test ( {
69+ code : 'import path from "node:path"' ,
70+ options : [ {
71+ allow : [ 'node:path' ] ,
72+ } ] ,
73+ } ) ,
74+ test ( {
75+ code : 'var events = require("node:events")' ,
76+ options : [ {
77+ allow : [ 'node:events' ] ,
78+ } ] ,
79+ } ) ,
80+ test ( {
81+ code : 'var path = require("node:path")' ,
82+ options : [ {
83+ allow : [ 'node:path' ] ,
84+ } ] ,
85+ } ) ,
86+ test ( {
87+ code : 'import path from "node:path";import events from "node:events"' ,
88+ options : [ {
89+ allow : [ 'node:path' , 'node:events' ] ,
90+ } ] ,
91+ } ) ] : [ ] ) ,
5892 ] ,
5993 invalid : [
6094 test ( {
@@ -80,5 +114,29 @@ ruleTester.run('no-nodejs-modules', rule, {
80114 } ] ,
81115 errors : [ error ( 'Do not import Node.js builtin module "fs"' ) ] ,
82116 } ) ,
117+ ...( supportsNodePrefix ? [
118+ test ( {
119+ code : 'import path from "node:path"' ,
120+ errors : [ error ( 'Do not import Node.js builtin module "node:path"' ) ] ,
121+ } ) ,
122+ test ( {
123+ code : 'import fs from "node:fs"' ,
124+ errors : [ error ( 'Do not import Node.js builtin module "node:fs"' ) ] ,
125+ } ) ,
126+ test ( {
127+ code : 'var path = require("node:path")' ,
128+ errors : [ error ( 'Do not import Node.js builtin module "node:path"' ) ] ,
129+ } ) ,
130+ test ( {
131+ code : 'var fs = require("node:fs")' ,
132+ errors : [ error ( 'Do not import Node.js builtin module "node:fs"' ) ] ,
133+ } ) ,
134+ test ( {
135+ code : 'import fs from "node:fs"' ,
136+ options : [ {
137+ allow : [ 'node:path' ] ,
138+ } ] ,
139+ errors : [ error ( 'Do not import Node.js builtin module "node:fs"' ) ] ,
140+ } ) ] : [ ] ) ,
83141 ] ,
84142} ) ;
0 commit comments