Skip to content

Commit 0ecb0f7

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

File tree

2 files changed

+227
-11
lines changed

2 files changed

+227
-11
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

+226-9
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": "*"
172337
}
173338
}`,
174339
},
175340
],
176341
},
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": "*"
360+
}
361+
}`,
362+
},
363+
],
364+
},
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}'`,
@@ -251,6 +446,28 @@ ruleTester.run("restrict-dependency-ranges", rule, {
251446
}`,
252447
name: "ignored version formats",
253448
},
449+
{
450+
code: `{
451+
"name": "thee-silver-mt-zion",
452+
"version": "13.13,13"
453+
}`,
454+
name: "no dependencies",
455+
},
456+
{
457+
code: `{
458+
"dependencies": {
459+
"abc": {
460+
"version": "1.2.3",
461+
"resolved": "https://registry.npmjs.org/abc/-/abc-1.2.3.tgz",
462+
"integrity": "sha512-abc"
463+
},
464+
"def": 123,
465+
"ghi": true,
466+
"jkl": null
467+
}
468+
}`,
469+
name: "malformed dependencies",
470+
},
254471

255472
// rangeType: 'caret'
256473
...[

0 commit comments

Comments
 (0)