@@ -14,7 +14,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
14
14
"${ dependencyType } ": {
15
15
"abc": "^1.2.3",
16
16
"def": "1.2.3",
17
- "ghi": "~1.2.3"
17
+ "ghi": "~1.2.3",
18
+ "jkl": "workspace:*",
19
+ "mno": "workspace:^",
20
+ "pqr": "workspace:~",
21
+ "stu": "*"
18
22
}
19
23
}` ,
20
24
errors : [
@@ -31,7 +35,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
31
35
"${ dependencyType } ": {
32
36
"abc": "^1.2.3",
33
37
"def": "^1.2.3",
34
- "ghi": "~1.2.3"
38
+ "ghi": "~1.2.3",
39
+ "jkl": "workspace:*",
40
+ "mno": "workspace:^",
41
+ "pqr": "workspace:~",
42
+ "stu": "*"
35
43
}
36
44
}` ,
37
45
} ,
@@ -50,12 +58,69 @@ ruleTester.run("restrict-dependency-ranges", rule, {
50
58
"${ dependencyType } ": {
51
59
"abc": "^1.2.3",
52
60
"def": "1.2.3",
53
- "ghi": "^1.2.3"
61
+ "ghi": "^1.2.3",
62
+ "jkl": "workspace:*",
63
+ "mno": "workspace:^",
64
+ "pqr": "workspace:~",
65
+ "stu": "*"
54
66
}
55
67
}` ,
56
68
} ,
57
69
] ,
58
70
} ,
71
+ {
72
+ data : {
73
+ rangeTypes : "caret" ,
74
+ } ,
75
+ line : 6 ,
76
+ messageId : "wrongRangeType" ,
77
+ suggestions : [
78
+ {
79
+ messageId : "changeToCaret" ,
80
+ output : `{
81
+ "${ dependencyType } ": {
82
+ "abc": "^1.2.3",
83
+ "def": "1.2.3",
84
+ "ghi": "~1.2.3",
85
+ "jkl": "workspace:^",
86
+ "mno": "workspace:^",
87
+ "pqr": "workspace:~",
88
+ "stu": "*"
89
+ }
90
+ }` ,
91
+ } ,
92
+ ] ,
93
+ } ,
94
+ {
95
+ data : {
96
+ rangeTypes : "caret" ,
97
+ } ,
98
+ line : 8 ,
99
+ messageId : "wrongRangeType" ,
100
+ suggestions : [
101
+ {
102
+ messageId : "changeToCaret" ,
103
+ output : `{
104
+ "${ dependencyType } ": {
105
+ "abc": "^1.2.3",
106
+ "def": "1.2.3",
107
+ "ghi": "~1.2.3",
108
+ "jkl": "workspace:*",
109
+ "mno": "workspace:^",
110
+ "pqr": "workspace:^",
111
+ "stu": "*"
112
+ }
113
+ }` ,
114
+ } ,
115
+ ] ,
116
+ } ,
117
+ {
118
+ data : {
119
+ rangeTypes : "caret" ,
120
+ } ,
121
+ line : 9 ,
122
+ messageId : "wrongRangeType" ,
123
+ } ,
59
124
] ,
60
125
filename : "package.json" ,
61
126
name : `rangeType: 'caret'; dependencyType: '${ dependencyType } '` ,
@@ -73,7 +138,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
73
138
"${ dependencyType } ": {
74
139
"abc": "^1.2.3",
75
140
"def": "1.2.3",
76
- "ghi": "~1.2.3"
141
+ "ghi": "~1.2.3",
142
+ "jkl": "workspace:*",
143
+ "mno": "workspace:^",
144
+ "pqr": "workspace:~",
145
+ "stu": "*"
77
146
}
78
147
}` ,
79
148
errors : [
@@ -90,7 +159,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
90
159
"${ dependencyType } ": {
91
160
"abc": "1.2.3",
92
161
"def": "1.2.3",
93
- "ghi": "~1.2.3"
162
+ "ghi": "~1.2.3",
163
+ "jkl": "workspace:*",
164
+ "mno": "workspace:^",
165
+ "pqr": "workspace:~",
166
+ "stu": "*"
94
167
}
95
168
}` ,
96
169
} ,
@@ -109,12 +182,69 @@ ruleTester.run("restrict-dependency-ranges", rule, {
109
182
"${ dependencyType } ": {
110
183
"abc": "^1.2.3",
111
184
"def": "1.2.3",
112
- "ghi": "1.2.3"
185
+ "ghi": "1.2.3",
186
+ "jkl": "workspace:*",
187
+ "mno": "workspace:^",
188
+ "pqr": "workspace:~",
189
+ "stu": "*"
190
+ }
191
+ }` ,
192
+ } ,
193
+ ] ,
194
+ } ,
195
+ {
196
+ data : {
197
+ rangeTypes : "pin" ,
198
+ } ,
199
+ line : 7 ,
200
+ messageId : "wrongRangeType" ,
201
+ suggestions : [
202
+ {
203
+ messageId : "changeToPin" ,
204
+ output : `{
205
+ "${ dependencyType } ": {
206
+ "abc": "^1.2.3",
207
+ "def": "1.2.3",
208
+ "ghi": "~1.2.3",
209
+ "jkl": "workspace:*",
210
+ "mno": "workspace:*",
211
+ "pqr": "workspace:~",
212
+ "stu": "*"
213
+ }
214
+ }` ,
215
+ } ,
216
+ ] ,
217
+ } ,
218
+ {
219
+ data : {
220
+ rangeTypes : "pin" ,
221
+ } ,
222
+ line : 8 ,
223
+ messageId : "wrongRangeType" ,
224
+ suggestions : [
225
+ {
226
+ messageId : "changeToPin" ,
227
+ output : `{
228
+ "${ dependencyType } ": {
229
+ "abc": "^1.2.3",
230
+ "def": "1.2.3",
231
+ "ghi": "~1.2.3",
232
+ "jkl": "workspace:*",
233
+ "mno": "workspace:^",
234
+ "pqr": "workspace:*",
235
+ "stu": "*"
113
236
}
114
237
}` ,
115
238
} ,
116
239
] ,
117
240
} ,
241
+ {
242
+ data : {
243
+ rangeTypes : "pin" ,
244
+ } ,
245
+ line : 9 ,
246
+ messageId : "wrongRangeType" ,
247
+ } ,
118
248
] ,
119
249
filename : "package.json" ,
120
250
name : `rangeType: 'pin'; dependencyType: '${ dependencyType } '` ,
@@ -132,7 +262,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
132
262
"${ dependencyType } ": {
133
263
"abc": "^1.2.3",
134
264
"def": "1.2.3",
135
- "ghi": "~1.2.3"
265
+ "ghi": "~1.2.3",
266
+ "jkl": "workspace:*",
267
+ "mno": "workspace:^",
268
+ "pqr": "workspace:~",
269
+ "stu": "*"
136
270
}
137
271
}` ,
138
272
errors : [
@@ -149,7 +283,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
149
283
"${ dependencyType } ": {
150
284
"abc": "~1.2.3",
151
285
"def": "1.2.3",
152
- "ghi": "~1.2.3"
286
+ "ghi": "~1.2.3",
287
+ "jkl": "workspace:*",
288
+ "mno": "workspace:^",
289
+ "pqr": "workspace:~",
290
+ "stu": "*"
153
291
}
154
292
}` ,
155
293
} ,
@@ -168,12 +306,69 @@ ruleTester.run("restrict-dependency-ranges", rule, {
168
306
"${ dependencyType } ": {
169
307
"abc": "^1.2.3",
170
308
"def": "~1.2.3",
171
- "ghi": "~1.2.3"
309
+ "ghi": "~1.2.3",
310
+ "jkl": "workspace:*",
311
+ "mno": "workspace:^",
312
+ "pqr": "workspace:~",
313
+ "stu": "*"
314
+ }
315
+ }` ,
316
+ } ,
317
+ ] ,
318
+ } ,
319
+ {
320
+ data : {
321
+ rangeTypes : "tilde" ,
322
+ } ,
323
+ line : 6 ,
324
+ messageId : "wrongRangeType" ,
325
+ suggestions : [
326
+ {
327
+ messageId : "changeToTilde" ,
328
+ output : `{
329
+ "${ dependencyType } ": {
330
+ "abc": "^1.2.3",
331
+ "def": "1.2.3",
332
+ "ghi": "~1.2.3",
333
+ "jkl": "workspace:~",
334
+ "mno": "workspace:^",
335
+ "pqr": "workspace:~",
336
+ "stu": "*"
337
+ }
338
+ }` ,
339
+ } ,
340
+ ] ,
341
+ } ,
342
+ {
343
+ data : {
344
+ rangeTypes : "tilde" ,
345
+ } ,
346
+ line : 7 ,
347
+ messageId : "wrongRangeType" ,
348
+ suggestions : [
349
+ {
350
+ messageId : "changeToTilde" ,
351
+ output : `{
352
+ "${ dependencyType } ": {
353
+ "abc": "^1.2.3",
354
+ "def": "1.2.3",
355
+ "ghi": "~1.2.3",
356
+ "jkl": "workspace:*",
357
+ "mno": "workspace:~",
358
+ "pqr": "workspace:~",
359
+ "stu": "*"
172
360
}
173
361
}` ,
174
362
} ,
175
363
] ,
176
364
} ,
365
+ {
366
+ data : {
367
+ rangeTypes : "tilde" ,
368
+ } ,
369
+ line : 9 ,
370
+ messageId : "wrongRangeType" ,
371
+ } ,
177
372
] ,
178
373
filename : "package.json" ,
179
374
name : `rangeType: 'tilde'; dependencyType: '${ dependencyType } '` ,
@@ -239,7 +434,21 @@ ruleTester.run("restrict-dependency-ranges", rule, {
239
434
] ,
240
435
241
436
valid : [
242
- { code : "{}" , name : "empty package.json" } ,
437
+ {
438
+ code : `{
439
+ "dependencies": {
440
+ "abc": "^1.2.3",
441
+ "def": "workspace:~1.2.3",
442
+ "ghi": "workspace:*"
443
+ }
444
+ }` ,
445
+ name : "no options" ,
446
+ } ,
447
+ {
448
+ code : "{}" ,
449
+ name : "empty package.json" ,
450
+ options : [ { rangeType : "caret" } ] ,
451
+ } ,
243
452
{
244
453
code : `{
245
454
"dependencies": {
@@ -250,6 +459,32 @@ ruleTester.run("restrict-dependency-ranges", rule, {
250
459
}
251
460
}` ,
252
461
name : "ignored version formats" ,
462
+ options : [ { rangeType : "caret" } ] ,
463
+ } ,
464
+ {
465
+ code : `{
466
+ "bin": {
467
+ "abc": "bin/abc.js"
468
+ }
469
+ }` ,
470
+ name : "no dependencies" ,
471
+ options : [ { rangeType : "caret" } ] ,
472
+ } ,
473
+ {
474
+ code : `{
475
+ "dependencies": {
476
+ "abc": {
477
+ "version": "1.2.3",
478
+ "resolved": "https://registry.npmjs.org/abc/-/abc-1.2.3.tgz",
479
+ "integrity": "sha512-abc"
480
+ },
481
+ "def": 123,
482
+ "ghi": true,
483
+ "jkl": null
484
+ }
485
+ }` ,
486
+ name : "malformed dependencies" ,
487
+ options : [ { rangeType : "caret" } ] ,
253
488
} ,
254
489
255
490
// rangeType: 'caret'
0 commit comments