Skip to content

Commit 8fc3afd

Browse files
committed
(PUP-6373) Adjust spec tests with respect to pre-release identifiers
Before this commit, the spec tests assumed that versions with prerelease identifiers should be included in ranges where no prerelease had been defined for a given major, minor, patch tuple. This commit changes the tests to that prereleases are included only if the range explicitly requests a prerelease for the same major, minor, patch tuple. Other prereleases are not included.
1 parent 3c7d627 commit 8fc3afd

File tree

1 file changed

+46
-46
lines changed

1 file changed

+46
-46
lines changed

spec/unit/semantic_puppet/version_range_spec.rb

+46-46
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,18 @@ def self.test_range(range_list, str, includes, excludes)
4848
},
4949
[ '1.2.3' ] => {
5050
:to_str => '1.2.3',
51-
:includes => [ '1.2.3-alpha', '1.2.3' ],
52-
:excludes => [ '1.2.2', '1.2.4-alpha' ],
51+
:includes => [ '1.2.3' ],
52+
:excludes => [ '1.2.2', '1.2.3-alpha', '1.2.4-alpha' ],
5353
},
5454
[ '1.2', '1.2.x', '1.2.X' ] => {
55-
:to_str => '1.2.x',
56-
:includes => [ '1.2.0-alpha', '1.2.0', '1.2.999' ],
57-
:excludes => [ '1.1.999', '1.3.0-0' ],
55+
:to_str => '>=1.2.0 <1.3.0',
56+
:includes => [ '1.2.0', '1.2.999' ],
57+
:excludes => [ '1.1.999', '1.2.0-alpha', '1.3.0-0' ],
5858
},
5959
[ '1', '1.x', '1.X' ] => {
60-
:to_str => '1.x',
61-
:includes => [ '1.0.0-alpha', '1.999.0' ],
62-
:excludes => [ '0.999.999', '2.0.0-0' ],
60+
:to_str => '>=1.0.0 <2.0.0',
61+
:includes => [ '1.0.0', '1.999.0' ],
62+
:excludes => [ '0.999.999', '1.0.0-alpha', '2.0.0-0' ],
6363
},
6464
}
6565

@@ -71,9 +71,9 @@ def self.test_range(range_list, str, includes, excludes)
7171
context 'open-ended expressions' do
7272
expressions = {
7373
[ '>1.2.3', '> 1.2.3' ] => {
74-
:to_str => '>=1.2.4',
75-
:includes => [ '1.2.4-0', '999.0.0' ],
76-
:excludes => [ '1.2.3' ],
74+
:to_str => '>1.2.3',
75+
:includes => [ '999.0.0' ],
76+
:excludes => [ '1.2.3', '1.2.4-0' ],
7777
},
7878
[ '>1.2.3-alpha', '> 1.2.3-alpha' ] => {
7979
:to_str => '>1.2.3-alpha',
@@ -83,35 +83,35 @@ def self.test_range(range_list, str, includes, excludes)
8383

8484
[ '>=1.2.3', '>= 1.2.3' ] => {
8585
:to_str => '>=1.2.3',
86-
:includes => [ '1.2.3-0', '999.0.0' ],
87-
:excludes => [ '1.2.2' ],
86+
:includes => [ '999.0.0' ],
87+
:excludes => [ '1.2.2', '1.2.3-0' ],
8888
},
8989
[ '>=1.2.3-alpha', '>= 1.2.3-alpha' ] => {
9090
:to_str => '>=1.2.3-alpha',
9191
:includes => [ '1.2.3-alpha', '1.2.3-alpha0', '999.0.0' ],
92-
:excludes => [ '1.2.3-alph' ],
92+
:excludes => [ '1.2.3-alph', '1.2.4-alpha' ],
9393
},
9494

9595
[ '<1.2.3', '< 1.2.3' ] => {
9696
:to_str => '<1.2.3',
97-
:includes => [ '0.0.0-0', '1.2.2' ],
98-
:excludes => [ '1.2.3-0', '2.0.0' ],
97+
:includes => [ '0.0.0', '1.2.2' ],
98+
:excludes => [ '0.0.0-0', '1.2.3-0', '2.0.0' ],
9999
},
100100
[ '<1.2.3-alpha', '< 1.2.3-alpha' ] => {
101101
:to_str => '<1.2.3-alpha',
102-
:includes => [ '0.0.0-0', '1.2.3-alph' ],
103-
:excludes => [ '1.2.3-alpha', '2.0.0' ],
102+
:includes => [ '0.0.0', '1.2.3-alph' ],
103+
:excludes => [ '0.0.0-0', '1.2.3-alpha', '2.0.0' ],
104104
},
105105

106106
[ '<=1.2.3', '<= 1.2.3' ] => {
107-
:to_str => '<1.2.4',
108-
:includes => [ '0.0.0-0', '1.2.3' ],
109-
:excludes => [ '1.2.4-0' ],
107+
:to_str => '<=1.2.3',
108+
:includes => [ '0.0.0', '1.2.3' ],
109+
:excludes => [ '0.0.0-0', '1.2.3-0' ],
110110
},
111111
[ '<=1.2.3-alpha', '<= 1.2.3-alpha' ] => {
112112
:to_str => '<=1.2.3-alpha',
113-
:includes => [ '0.0.0-0', '1.2.3-alpha' ],
114-
:excludes => [ '1.2.3-alpha0', '1.2.3-alpha.0', '1.2.3-alpha'.next ],
113+
:includes => [ '0.0.0', '1.2.3-alpha' ],
114+
:excludes => [ '0.0.0-0', '1.2.3-alpha0', '1.2.3-alpha.0', '1.2.3-alpha'.next ],
115115
},
116116
}
117117

@@ -123,22 +123,22 @@ def self.test_range(range_list, str, includes, excludes)
123123
context '"reasonably close" expressions' do
124124
expressions = {
125125
[ '~ 1', '~1' ] => {
126-
:to_str => '1.x',
127-
:includes => [ '1.0.0-0', '1.999.999' ],
128-
:excludes => [ '0.999.999', '2.0.0-0' ],
126+
:to_str => '>=1.0.0 <2.0.0',
127+
:includes => [ '1.0.0', '1.999.999' ],
128+
:excludes => [ '0.999.999', '1.0.0-0', '2.0.0-0' ],
129129
},
130130
[ '~ 1.2', '~1.2' ] => {
131-
:to_str => '1.2.x',
132-
:includes => [ '1.2.0-0', '1.2.999' ],
133-
:excludes => [ '1.1.999', '1.3.0-0' ],
131+
:to_str => '>=1.2.0 <1.3.0',
132+
:includes => [ '1.2.0', '1.2.999' ],
133+
:excludes => [ '1.1.999', '1.2.0-0', '1.3.0-0' ],
134134
},
135135
[ '~ 1.2.3', '~1.2.3' ] => {
136136
:to_str => '>=1.2.3 <1.3.0',
137-
:includes => [ '1.2.3-0', '1.2.5' ],
138-
:excludes => [ '1.2.2', '1.3.0-0' ],
137+
:includes => [ '1.2.3', '1.2.5' ],
138+
:excludes => [ '1.2.2', '1.2.3-0', '1.3.0-0' ],
139139
},
140140
[ '~ 1.2.3-alpha', '~1.2.3-alpha' ] => {
141-
:to_str => '>=1.2.3-alpha <1.2.4',
141+
:to_str => '>=1.2.3-alpha <1.3.0',
142142
:includes => [ '1.2.3-alpha', '1.2.3' ],
143143
:excludes => [ '1.2.3-alph', '1.2.4-0' ],
144144
},
@@ -152,18 +152,18 @@ def self.test_range(range_list, str, includes, excludes)
152152
context 'inclusive range expressions' do
153153
expressions = {
154154
'1.2.3 - 1.3.4' => {
155-
:to_str => '>=1.2.3 <1.3.5',
156-
:includes => [ '1.2.3-0', '1.3.4' ],
157-
:excludes => [ '1.2.2', '1.3.5-0' ],
155+
:to_str => '>=1.2.3 <=1.3.4',
156+
:includes => [ '1.2.3', '1.3.4' ],
157+
:excludes => [ '1.2.2', '1.2.3-0', '1.3.5-0' ],
158158
},
159159
'1.2.3 - 1.3.4-alpha' => {
160160
:to_str => '>=1.2.3 <=1.3.4-alpha',
161-
:includes => [ '1.2.3-0', '1.3.4-alpha' ],
162-
:excludes => [ '1.2.2', '1.3.4-alpha0', '1.3.5' ],
161+
:includes => [ '1.2.3', '1.3.4-alpha' ],
162+
:excludes => [ '1.2.2', '1.2.3-0', '1.3.4-alpha0', '1.3.5' ],
163163
},
164164

165165
'1.2.3-alpha - 1.3.4' => {
166-
:to_str => '>=1.2.3-alpha <1.3.5',
166+
:to_str => '>=1.2.3-alpha <=1.3.4',
167167
:includes => [ '1.2.3-alpha', '1.3.4' ],
168168
:excludes => [ '1.2.3-alph', '1.3.5-0' ],
169169
},
@@ -183,23 +183,23 @@ def self.test_range(range_list, str, includes, excludes)
183183
expressions = {
184184
[ '1.2 <1.2.5' ] => {
185185
:to_str => '>=1.2.0 <1.2.5',
186-
:includes => [ '1.2.0-0', '1.2.4' ],
187-
:excludes => [ '1.1.999', '1.2.5-0', '1.9.0' ],
186+
:includes => [ '1.2.0', '1.2.4' ],
187+
:excludes => [ '1.1.999', '1.2.0-0', '1.2.5-0', '1.9.0' ],
188188
},
189189
[ '1 <=1.2.5' ] => {
190-
:to_str => '>=1.0.0 <1.2.6',
191-
:includes => [ '1.0.0-0', '1.2.5' ],
192-
:excludes => [ '0.999.999', '1.2.6-0', '1.9.0' ],
190+
:to_str => '>=1.0.0 <=1.2.5',
191+
:includes => [ '1.0.0', '1.2.5' ],
192+
:excludes => [ '0.999.999', '1.0.0-0', '1.2.6-0', '1.9.0' ],
193193
},
194194
[ '>1.0.0 >2.0.0 >=3.0.0 <5.0.0' ] => {
195195
:to_str => '>=3.0.0 <5.0.0',
196-
:includes => [ '3.0.0-0', '4.999.999' ],
197-
:excludes => [ '2.999.999', '5.0.0-0' ],
196+
:includes => [ '3.0.0', '4.999.999' ],
197+
:excludes => [ '2.999.999', '3.0.0-0', '5.0.0-0' ],
198198
},
199199
[ '<1.0.0 >2.0.0' ] => {
200200
:to_str => '<0.0.0',
201201
:includes => [ ],
202-
:excludes => [ '0.0.0-0' ],
202+
:excludes => [ '0.0.0-0', '0.0.0' ],
203203
},
204204
}
205205

0 commit comments

Comments
 (0)