Skip to content

Commit b6a3e37

Browse files
authored
Fix Misc Bugs Introduced in Pack Generator Refactoring (#1515)
* Fix Wrong Module Name * Fix Version Check Bug and add Tests
1 parent a1cd67d commit b6a3e37

File tree

3 files changed

+41
-8
lines changed

3 files changed

+41
-8
lines changed

lib/react_on_rails/utils.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,5 @@ def self.prepend_to_file_if_text_not_present(file:, text_to_prepend:, regex:)
219219

220220
puts "Prepended\n#{text_to_prepend}to #{file}."
221221
end
222-
223-
def self.semver_to_string(ary)
224-
"#{ary[0]}.#{ary[1]}.#{ary[2]}"
225-
end
226222
end
227223
end

lib/react_on_rails/webpacker_utils.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ def self.shakapacker_version_as_array
2727
@shakapacker_version_as_array = [match[1].to_i, match[2].to_i, match[3].to_i]
2828
end
2929

30-
def self.shackapacker_version_requirement_met?(ary)
31-
ary[0] >= shakapacker_version_as_array[0] && ary[1] >= shakapacker_version_as_array[1] &&
32-
ary[2] >= shakapacker_version_as_array[2]
30+
def self.shackapacker_version_requirement_met?(required_version)
31+
req_ver = semver_to_string(required_version)
32+
33+
Gem::Version.new(shakapacker_version) >= Gem::Version.new(req_ver)
3334
end
3435

3536
# This returns either a URL for the webpack-dev-server, non-server bundle or
@@ -136,5 +137,9 @@ def self.raise_shakapacker_not_installed
136137

137138
raise ReactOnRails::Error, msg
138139
end
140+
141+
def self.semver_to_string(ary)
142+
"#{ary[0]}.#{ary[1]}.#{ary[2]}"
143+
end
139144
end
140145
end

spec/react_on_rails/webpacker_utils_spec.rb

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,39 @@ module ReactOnRails
99
described_class.using_webpacker?
1010
end
1111

12-
it { is_expected.to eq(true) }
12+
it { is_expected.to be(true) }
13+
end
14+
15+
describe ".shackapacker_version_requirement_met?" do
16+
minimum_version = [6, 5, 3]
17+
18+
it "returns false when version is lower than minimum_version" do
19+
allow(described_class).to receive(:shakapacker_version).and_return("6.5.0")
20+
21+
expect(described_class.shackapacker_version_requirement_met?(minimum_version)).to be(false)
22+
23+
allow(described_class).to receive(:shakapacker_version).and_return("6.4.7")
24+
expect(described_class.shackapacker_version_requirement_met?(minimum_version)).to be(false)
25+
26+
allow(described_class).to receive(:shakapacker_version).and_return("5.7.7")
27+
expect(described_class.shackapacker_version_requirement_met?(minimum_version)).to be(false)
28+
end
29+
30+
it "returns true when version is equal to minimum_version" do
31+
allow(described_class).to receive(:shakapacker_version).and_return("6.5.3")
32+
expect(described_class.shackapacker_version_requirement_met?(minimum_version)).to be(true)
33+
end
34+
35+
it "returns true when version is greater than minimum_version" do
36+
allow(described_class).to receive(:shakapacker_version).and_return("6.6.0")
37+
expect(described_class.shackapacker_version_requirement_met?(minimum_version)).to be(true)
38+
39+
allow(described_class).to receive(:shakapacker_version).and_return("6.5.4")
40+
expect(described_class.shackapacker_version_requirement_met?(minimum_version)).to be(true)
41+
42+
allow(described_class).to receive(:shakapacker_version).and_return("7.7.7")
43+
expect(described_class.shackapacker_version_requirement_met?(minimum_version)).to be(true)
44+
end
1345
end
1446
end
1547
end

0 commit comments

Comments
 (0)