Skip to content

Commit 7269e63

Browse files
committed
test: add more unit test coverage for restrict-dependency-ranges rule
test: add more unit test coverage
1 parent 8567799 commit 7269e63

File tree

2 files changed

+246
-12
lines changed

2 files changed

+246
-12
lines changed

src/rules/restrict-dependency-ranges.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ const changeVersionRange = (version: string, rangeType: RangeType): string => {
8080
case "pin":
8181
return "workspace:*";
8282
case "tilde":
83-
return "workspace:~";
8483
default:
85-
return version;
84+
return "workspace:~";
8685
}
8786
}
8887

src/tests/rules/restrict-dependency-ranges.test.ts

+245-10
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
1414
"${dependencyType}": {
1515
"abc": "^1.2.3",
1616
"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": "*"
1822
}
1923
}`,
2024
errors: [
@@ -31,7 +35,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
3135
"${dependencyType}": {
3236
"abc": "^1.2.3",
3337
"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": "*"
3543
}
3644
}`,
3745
},
@@ -50,12 +58,69 @@ ruleTester.run("restrict-dependency-ranges", rule, {
5058
"${dependencyType}": {
5159
"abc": "^1.2.3",
5260
"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": "*"
5466
}
5567
}`,
5668
},
5769
],
5870
},
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+
},
59124
],
60125
filename: "package.json",
61126
name: `rangeType: 'caret'; dependencyType: '${dependencyType}'`,
@@ -73,7 +138,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
73138
"${dependencyType}": {
74139
"abc": "^1.2.3",
75140
"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": "*"
77146
}
78147
}`,
79148
errors: [
@@ -90,7 +159,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
90159
"${dependencyType}": {
91160
"abc": "1.2.3",
92161
"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": "*"
94167
}
95168
}`,
96169
},
@@ -109,12 +182,69 @@ ruleTester.run("restrict-dependency-ranges", rule, {
109182
"${dependencyType}": {
110183
"abc": "^1.2.3",
111184
"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": "*"
113236
}
114237
}`,
115238
},
116239
],
117240
},
241+
{
242+
data: {
243+
rangeTypes: "pin",
244+
},
245+
line: 9,
246+
messageId: "wrongRangeType",
247+
},
118248
],
119249
filename: "package.json",
120250
name: `rangeType: 'pin'; dependencyType: '${dependencyType}'`,
@@ -132,7 +262,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
132262
"${dependencyType}": {
133263
"abc": "^1.2.3",
134264
"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": "*"
136270
}
137271
}`,
138272
errors: [
@@ -149,7 +283,11 @@ ruleTester.run("restrict-dependency-ranges", rule, {
149283
"${dependencyType}": {
150284
"abc": "~1.2.3",
151285
"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": "*"
153291
}
154292
}`,
155293
},
@@ -168,12 +306,69 @@ ruleTester.run("restrict-dependency-ranges", rule, {
168306
"${dependencyType}": {
169307
"abc": "^1.2.3",
170308
"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": "*"
172360
}
173361
}`,
174362
},
175363
],
176364
},
365+
{
366+
data: {
367+
rangeTypes: "tilde",
368+
},
369+
line: 9,
370+
messageId: "wrongRangeType",
371+
},
177372
],
178373
filename: "package.json",
179374
name: `rangeType: 'tilde'; dependencyType: '${dependencyType}'`,
@@ -239,7 +434,21 @@ ruleTester.run("restrict-dependency-ranges", rule, {
239434
],
240435

241436
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+
},
243452
{
244453
code: `{
245454
"dependencies": {
@@ -250,6 +459,32 @@ ruleTester.run("restrict-dependency-ranges", rule, {
250459
}
251460
}`,
252461
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" }],
253488
},
254489

255490
// rangeType: 'caret'

0 commit comments

Comments
 (0)