File tree Expand file tree Collapse file tree 3 files changed +37
-7
lines changed
test/generators/suspenders/install Expand file tree Collapse file tree 3 files changed +37
-7
lines changed Original file line number Diff line number Diff line change 1
1
def node_version
2
- ENV [ "NODE_VERSION" ] || `node --version` [ /\d +\. \d +\. \d +/ ]
2
+ version = ENV [ "NODE_VERSION" ] || `node --version` [ /\d +\. \d +\. \d +/ ]
3
+
4
+ return if version . blank?
5
+
6
+ Gem ::Version . new ( version )
3
7
end
4
8
5
9
def node_not_installed?
6
10
node_version . blank?
7
11
end
8
12
9
13
def node_version_unsupported?
10
- node_version < "20.0.0"
14
+ minimum_node_version = Gem ::Version . new ( "20.0.0" )
15
+
16
+ node_version < minimum_node_version
11
17
end
12
18
13
19
def apply_template!
Original file line number Diff line number Diff line change @@ -20,15 +20,21 @@ def rspec_test_helper_present?
20
20
end
21
21
22
22
def node_version
23
- ENV [ "NODE_VERSION" ] || `node --version` [ /\d +\. \d +\. \d +/ ]
23
+ version = ENV [ "NODE_VERSION" ] || `node --version` [ /\d +\. \d +\. \d +/ ]
24
+
25
+ return if version . blank?
26
+
27
+ Gem ::Version . new ( version )
24
28
end
25
29
26
30
def node_not_installed?
27
31
node_version . blank?
28
32
end
29
33
30
34
def node_version_unsupported?
31
- node_version < Suspenders ::MINIMUM_NODE_VERSION
35
+ minimum_node_version = Gem ::Version . new ( Suspenders ::MINIMUM_NODE_VERSION )
36
+
37
+ node_version < minimum_node_version
32
38
end
33
39
end
34
40
Original file line number Diff line number Diff line change @@ -48,14 +48,32 @@ class WebGeneratorTest < Rails::Generators::TestCase
48
48
end
49
49
end
50
50
51
+ test "evaluates support for Node versions correctly" do
52
+ web_generator = Generators ::Install ::WebGenerator . new
53
+
54
+ unsupported_versions = %w[ 1.0.0 1.100.200 10.0.0 19.0.0 19.9.9 19.9999.99999 ]
55
+
56
+ unsupported_versions . each do |unsupported_version |
57
+ Generators ::Install ::WebGenerator . any_instance . stubs ( :node_version ) . returns ( unsupported_version )
58
+
59
+ assert_predicate web_generator , :node_version_unsupported? , "Node version #{ unsupported_version } should not be supported"
60
+ end
61
+
62
+ supported_versions = %w[ 20.0.0 20.1.0 20.100.200 50.0.0 100.0.0 ]
63
+
64
+ supported_versions . each do |supported_version |
65
+ Generators ::Install ::WebGenerator . any_instance . stubs ( :node_version ) . returns ( supported_version )
66
+
67
+ assert_not_predicate web_generator , :node_version_unsupported? , "Node version #{ supported_version } should be supported"
68
+ end
69
+ end
70
+
51
71
private
52
72
53
73
def prepare_destination
54
74
touch "Gemfile"
55
75
56
- File . open ( "test/dummy/Gemfile" , "w" ) do |f |
57
- f . write ( 'source "https://rubygems.org"' )
58
- end
76
+ File . write ( "test/dummy/Gemfile" , 'source "https://rubygems.org"' )
59
77
end
60
78
61
79
def restore_destination
You can’t perform that action at this time.
0 commit comments