@@ -42,7 +42,7 @@ def package_details
42
42
language = if release [ :language ]
43
43
Dependabot ::Package ::PackageLanguage . new (
44
44
name : release [ :language ] . fetch ( :name , "" ) ,
45
- version : release [ :language ] . fetch ( :version , nil ) &.then { |v | Dependabot :: Version . new ( v ) } ,
45
+ version : release [ :language ] . fetch ( :version , nil ) &.then { |v | TestVersion . new ( v ) } ,
46
46
requirement : release [ :language ] . fetch ( :requirement , nil ) &.then do |r |
47
47
TestRequirement . new ( r )
48
48
end
@@ -266,7 +266,7 @@ def package_details
266
266
describe "#latest_version" do
267
267
subject ( :latest_version ) { finder . latest_version }
268
268
269
- it { is_expected . to eq ( Gem :: Version . new ( "7.0.0" ) ) }
269
+ it { is_expected . to eq ( TestVersion . new ( "7.0.0" ) ) }
270
270
271
271
context "when all supported versions are ignored" do
272
272
let ( :ignored_versions ) { [ "7.0.0" , "6.1.4" , "6.0.2" , "6.0.0" ] }
@@ -286,7 +286,7 @@ def package_details
286
286
end
287
287
288
288
it "ignores prerelease versions" do
289
- expect ( latest_version ) . to eq ( Gem :: Version . new ( "7.0.0" ) )
289
+ expect ( latest_version ) . to eq ( TestVersion . new ( "7.0.0" ) )
290
290
end
291
291
292
292
context "when prereleases are allowed" do
@@ -295,7 +295,7 @@ def package_details
295
295
end
296
296
297
297
it "selects the highest prerelease version" do
298
- expect ( latest_version ) . to eq ( Gem :: Version . new ( "7.0.0" ) )
298
+ expect ( latest_version ) . to eq ( TestVersion . new ( "7.0.0" ) )
299
299
end
300
300
end
301
301
end
@@ -305,29 +305,29 @@ def package_details
305
305
subject ( :latest_version_with_no_unlock ) { finder . latest_version_with_no_unlock }
306
306
307
307
context "when no constraints are present" do
308
- it { is_expected . to eq ( Gem :: Version . new ( "7.0.0" ) ) }
308
+ it { is_expected . to eq ( TestVersion . new ( "7.0.0" ) ) }
309
309
end
310
310
311
311
context "with an exact version requirement" do
312
312
let ( :dependency_requirements ) do
313
313
[ { file : "Gemfile" , requirement : "=6.0.2" , groups : [ ] , source : nil } ]
314
314
end
315
315
316
- it { is_expected . to eq ( Gem :: Version . new ( "6.0.2" ) ) }
316
+ it { is_expected . to eq ( TestVersion . new ( "6.0.2" ) ) }
317
317
end
318
318
319
319
context "with an upper bound restriction" do
320
320
let ( :dependency_requirements ) do
321
321
[ { file : "Gemfile" , requirement : ">=6.0.0,<7.0.0" , groups : [ ] , source : nil } ]
322
322
end
323
323
324
- it { is_expected . to eq ( Gem :: Version . new ( "6.1.4" ) ) }
324
+ it { is_expected . to eq ( TestVersion . new ( "6.1.4" ) ) }
325
325
end
326
326
327
327
context "when ignored versions affect the latest selection" do
328
328
let ( :ignored_versions ) { [ "7.0.0" ] }
329
329
330
- it { is_expected . to eq ( Gem :: Version . new ( "6.1.4" ) ) }
330
+ it { is_expected . to eq ( TestVersion . new ( "6.1.4" ) ) }
331
331
end
332
332
end
333
333
@@ -344,7 +344,7 @@ def package_details
344
344
]
345
345
end
346
346
347
- it { is_expected . to eq ( Gem :: Version . new ( "6.0.2" ) ) }
347
+ it { is_expected . to eq ( TestVersion . new ( "6.0.2" ) ) }
348
348
349
349
context "when no non-vulnerable versions exist" do
350
350
let ( :available_releases ) do
@@ -356,23 +356,26 @@ def package_details
356
356
end
357
357
358
358
describe "version filtering" do
359
- subject ( :filtered_versions ) { finder . send ( :filter_ignored_versions , versions ) }
359
+ subject ( :filtered_versions ) { finder . send ( :filter_ignored_versions , releases ) }
360
360
361
- let ( :versions ) { [ Gem ::Version . new ( "7.0.0" ) , Gem ::Version . new ( "6.1.4" ) , Gem ::Version . new ( "6.0.2" ) ] }
361
+ let ( :r1 ) { Dependabot ::Package ::PackageRelease . new ( version : TestVersion . new ( "7.0.0" ) ) }
362
+ let ( :r2 ) { Dependabot ::Package ::PackageRelease . new ( version : TestVersion . new ( "6.1.4" ) ) }
363
+ let ( :r3 ) { Dependabot ::Package ::PackageRelease . new ( version : TestVersion . new ( "6.0.2" ) ) }
364
+ let ( :releases ) { [ r1 , r2 , r3 ] }
362
365
363
366
context "when no ignored versions are specified" do
364
367
let ( :ignored_versions ) { [ ] }
365
368
366
369
it "returns all versions" do
367
- expect ( filtered_versions ) . to eq ( versions )
370
+ expect ( filtered_versions ) . to eq ( releases )
368
371
end
369
372
end
370
373
371
374
context "when ignoring a specific version" do
372
375
let ( :ignored_versions ) { [ "7.0.0" ] }
373
376
374
377
it "removes the ignored version" do
375
- expect ( filtered_versions ) . to eq ( [ Gem :: Version . new ( "6.1.4" ) , Gem :: Version . new ( "6.0.2" ) ] )
378
+ expect ( filtered_versions ) . to eq ( [ r2 , r3 ] )
376
379
end
377
380
end
378
381
0 commit comments