@@ -2,8 +2,6 @@ import util from 'node:util'
22import path from 'node:path'
33import { describe , expect , test } from 'vitest'
44import {
5- FALLBACK_FALSE ,
6- FALLBACK_TRUE ,
75createCodeFilter ,
86createFilterForTransform ,
97createIdFilter ,
@@ -16,37 +14,37 @@ describe('createIdFilter', () => {
1614inputFilter :'foo.js' ,
1715cases :[
1816{ id :'foo.js' , expected :true } ,
19- { id :'foo.ts' , expected :FALLBACK_FALSE } ,
20- { id :'\0foo.js' , expected :FALLBACK_FALSE } ,
21- { id :'\0' + path . resolve ( 'foo.js' ) , expected :FALLBACK_FALSE } ,
17+ { id :'foo.ts' , expected :false } ,
18+ { id :'\0foo.js' , expected :false } ,
19+ { id :'\0' + path . resolve ( 'foo.js' ) , expected :false } ,
2220] ,
2321} ,
2422{
2523inputFilter :[ 'foo.js' ] ,
2624cases :[
2725{ id :'foo.js' , expected :true } ,
28- { id :'foo.ts' , expected :FALLBACK_FALSE } ,
26+ { id :'foo.ts' , expected :false } ,
2927] ,
3028} ,
3129{
3230inputFilter :{ include :'foo.js' } ,
3331cases :[
3432{ id :'foo.js' , expected :true } ,
35- { id :'foo.ts' , expected :FALLBACK_FALSE } ,
33+ { id :'foo.ts' , expected :false } ,
3634] ,
3735} ,
3836{
3937inputFilter :{ include :'*.js' } ,
4038cases :[
4139{ id :'foo.js' , expected :true } ,
42- { id :'foo.ts' , expected :FALLBACK_FALSE } ,
40+ { id :'foo.ts' , expected :false } ,
4341] ,
4442} ,
4543{
4644inputFilter :{ include :/ \. j s $ / } ,
4745cases :[
4846{ id :'foo.js' , expected :true } ,
49- { id :'foo.ts' , expected :FALLBACK_FALSE } ,
47+ { id :'foo.ts' , expected :false } ,
5048] ,
5149} ,
5250{
@@ -56,50 +54,50 @@ describe('createIdFilter', () => {
5654 ...( process . platform === 'win32'
5755 ?[ { id :'a\\foo.js' , expected :true } ]
5856 :[ ] ) ,
59- { id :'a_foo.js' , expected :FALLBACK_FALSE } ,
57+ { id :'a_foo.js' , expected :false } ,
6058] ,
6159} ,
6260{
6361inputFilter :{ include :[ / \. j s $ / ] } ,
6462cases :[
6563{ id :'foo.js' , expected :true } ,
66- { id :'foo.ts' , expected :FALLBACK_FALSE } ,
64+ { id :'foo.ts' , expected :false } ,
6765] ,
6866} ,
6967{
7068inputFilter :{ exclude :'foo.js' } ,
7169cases :[
7270{ id :'foo.js' , expected :false } ,
73- { id :'foo.ts' , expected :FALLBACK_TRUE } ,
71+ { id :'foo.ts' , expected :true } ,
7472] ,
7573} ,
7674{
7775inputFilter :{ exclude :'*.js' } ,
7876cases :[
7977{ id :'foo.js' , expected :false } ,
80- { id :'foo.ts' , expected :FALLBACK_TRUE } ,
78+ { id :'foo.ts' , expected :true } ,
8179] ,
8280} ,
8381{
8482inputFilter :{ exclude :/ \. j s $ / } ,
8583cases :[
8684{ id :'foo.js' , expected :false } ,
87- { id :'foo.ts' , expected :FALLBACK_TRUE } ,
85+ { id :'foo.ts' , expected :true } ,
8886] ,
8987} ,
9088{
9189inputFilter :{ exclude :[ / \. j s $ / ] } ,
9290cases :[
9391{ id :'foo.js' , expected :false } ,
94- { id :'foo.ts' , expected :FALLBACK_TRUE } ,
92+ { id :'foo.ts' , expected :true } ,
9593] ,
9694} ,
9795{
9896inputFilter :{ include :'foo.js' , exclude :'bar.js' } ,
9997cases :[
10098{ id :'foo.js' , expected :true } ,
10199{ id :'bar.js' , expected :false } ,
102- { id :'baz.js' , expected :FALLBACK_FALSE } ,
100+ { id :'baz.js' , expected :false } ,
103101] ,
104102} ,
105103{
@@ -140,64 +138,64 @@ describe('createCodeFilter', () => {
140138inputFilter :'import.meta' ,
141139cases :[
142140{ code :'import.meta' , expected :true } ,
143- { code :'import_meta' , expected :FALLBACK_FALSE } ,
141+ { code :'import_meta' , expected :false } ,
144142] ,
145143} ,
146144{
147145inputFilter :[ 'import.meta' ] ,
148146cases :[
149147{ code :'import.meta' , expected :true } ,
150- { code :'import_meta' , expected :FALLBACK_FALSE } ,
148+ { code :'import_meta' , expected :false } ,
151149] ,
152150} ,
153151{
154152inputFilter :{ include :'import.meta' } ,
155153cases :[
156154{ code :'import.meta' , expected :true } ,
157- { code :'import_meta' , expected :FALLBACK_FALSE } ,
155+ { code :'import_meta' , expected :false } ,
158156] ,
159157} ,
160158{
161159inputFilter :{ include :/ i m p o r t \. \w + / } ,
162160cases :[
163161{ code :'import.meta' , expected :true } ,
164- { code :'import_meta' , expected :FALLBACK_FALSE } ,
162+ { code :'import_meta' , expected :false } ,
165163] ,
166164} ,
167165{
168166inputFilter :{ include :[ / i m p o r t \. \w + / ] } ,
169167cases :[
170168{ code :'import.meta' , expected :true } ,
171- { code :'import_meta' , expected :FALLBACK_FALSE } ,
169+ { code :'import_meta' , expected :false } ,
172170] ,
173171} ,
174172{
175173inputFilter :{ exclude :'import.meta' } ,
176174cases :[
177175{ code :'import.meta' , expected :false } ,
178- { code :'import_meta' , expected :FALLBACK_TRUE } ,
176+ { code :'import_meta' , expected :true } ,
179177] ,
180178} ,
181179{
182180inputFilter :{ exclude :/ i m p o r t \. \w + / } ,
183181cases :[
184182{ code :'import.meta' , expected :false } ,
185- { code :'import_meta' , expected :FALLBACK_TRUE } ,
183+ { code :'import_meta' , expected :true } ,
186184] ,
187185} ,
188186{
189187inputFilter :{ exclude :[ / i m p o r t \. \w + / ] } ,
190188cases :[
191189{ code :'import.meta' , expected :false } ,
192- { code :'import_meta' , expected :FALLBACK_TRUE } ,
190+ { code :'import_meta' , expected :true } ,
193191] ,
194192} ,
195193{
196194inputFilter :{ include :'import.meta' , exclude :'import_meta' } ,
197195cases :[
198196{ code :'import.meta' , expected :true } ,
199197{ code :'import_meta' , expected :false } ,
200- { code :'importmeta' , expected :FALLBACK_FALSE } ,
198+ { code :'importmeta' , expected :false } ,
201199] ,
202200} ,
203201{
@@ -259,7 +257,30 @@ describe('createFilterForTransform', () => {
259257{ id :'foo.js' , code :'import.meta' , expected :false } ,
260258{ id :'foo.js' , code :'import_meta' , expected :false } ,
261259{ id :'foo.ts' , code :'import.meta' , expected :true } ,
262- { id :'foo.ts' , code :'import_meta' , expected :true } ,
260+ { id :'foo.ts' , code :'import_meta' , expected :false } ,
261+ ] ,
262+ } ,
263+ {
264+ inputFilter :[
265+ { include :'a*' , exclude :'*b' } ,
266+ { include :'a' , exclude :'b' } ,
267+ ] ,
268+ cases :[
269+ { id :'ab' , code :'' , expected :false } ,
270+ { id :'a' , code :'b' , expected :false } ,
271+ { id :'a' , code :'' , expected :false } ,
272+ { id :'c' , code :'a' , expected :false } ,
273+ { id :'a' , code :'a' , expected :true } ,
274+ ] ,
275+ } ,
276+ {
277+ inputFilter :[ { include :'a*' , exclude :'*b' } , { exclude :'b' } ] ,
278+ cases :[
279+ { id :'ab' , code :'' , expected :false } ,
280+ { id :'a' , code :'b' , expected :false } ,
281+ { id :'a' , code :'' , expected :true } ,
282+ { id :'c' , code :'a' , expected :false } ,
283+ { id :'a' , code :'a' , expected :true } ,
263284] ,
264285} ,
265286]