Skip to content

Commit ffcce20

Browse files
committed
Support all version components supported by versionomy gem
Add support for all version components supported by the versionomy gem: [major].[minor].[tiny].[tiny2]-[patchlevel]
1 parent 124730d commit ffcce20

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

lib/cc/engine/bundler_audit/unpatched_gem_remediation.rb

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ module BundlerAudit
44
class UnpatchedGemRemediation
55
MAJOR_UPGRADE_POINTS = 50_000_000
66
MINOR_UPGRADE_POINTS = 5_000_000
7-
PATCH_UPGRADE_POINTS = 500_000
7+
TINY_UPGRADE_POINTS = 500_000
8+
MINIMUM_UPGRADE_POINTS = 50_000
89
UNPATCHED_VERSION_POINTS = 500_000_000
910

1011
def initialize(gem_version, patched_versions)
@@ -31,7 +32,9 @@ def calculate_points(upgrade_version)
3132
when current_version.minor != upgrade_version.minor
3233
MINOR_UPGRADE_POINTS
3334
when current_version.tiny != upgrade_version.tiny
34-
PATCH_UPGRADE_POINTS
35+
TINY_UPGRADE_POINTS
36+
else
37+
MINIMUM_UPGRADE_POINTS
3538
end
3639
end
3740

spec/cc/engine/bundler_audit/remediation_spec.rb

+21-3
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,28 @@ module CC::Engine::BundlerAudit
1515
expect(remediation.points).to eq(UnpatchedGemRemediation::MINOR_UPGRADE_POINTS)
1616
end
1717

18-
it "returns patch upgrade remediation points when an upgrade requies a patch version bump" do
19-
remediation = UnpatchedGemRemediation.new("1.0.0", %w[1.0.3 2.0.3])
18+
it "returns tiny upgrade remediation points when an upgrade requies a tiny version bump" do
19+
remediation = UnpatchedGemRemediation.new("1.0", %w[1.0.2])
2020

21-
expect(remediation.points).to eq(UnpatchedGemRemediation::PATCH_UPGRADE_POINTS)
21+
expect(remediation.points).to eq(UnpatchedGemRemediation::TINY_UPGRADE_POINTS)
22+
end
23+
24+
it "returns minimum upgrade remediation points when an upgrade requies a <= tiny2 version bump" do
25+
remediation = UnpatchedGemRemediation.new("1.0", %w[1.0.0.2-2])
26+
27+
expect(remediation.points).to eq(UnpatchedGemRemediation::MINIMUM_UPGRADE_POINTS)
28+
29+
remediation = UnpatchedGemRemediation.new("1.0", %w[1.0.0.2-2])
30+
31+
expect(remediation.points).to eq(UnpatchedGemRemediation::MINIMUM_UPGRADE_POINTS)
32+
33+
remediation = UnpatchedGemRemediation.new("1.0", %w[1.0a2])
34+
35+
expect(remediation.points).to eq(UnpatchedGemRemediation::MINIMUM_UPGRADE_POINTS)
36+
37+
remediation = UnpatchedGemRemediation.new("1.0", %w[1.0b2])
38+
39+
expect(remediation.points).to eq(UnpatchedGemRemediation::MINIMUM_UPGRADE_POINTS)
2240
end
2341

2442
it "returns unpatched version remediation points when an upgrade is not possible" do

0 commit comments

Comments
 (0)