mr_bump 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/bin/mr_bump +60 -33
- data/lib/mr_bump.rb +35 -13
- data/spec/mr_bump_spec.rb +200 -1
- data/spec/mr_bump_spec.rb.orig +626 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/version_spec.rb +115 -0
- metadata +7 -53
- data/spec/coverage/assets/0.10.0/application.css +0 -799
- data/spec/coverage/assets/0.10.0/application.js +0 -1707
- data/spec/coverage/assets/0.10.0/colorbox/border.png +0 -0
- data/spec/coverage/assets/0.10.0/colorbox/controls.png +0 -0
- data/spec/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
- data/spec/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
- data/spec/coverage/assets/0.10.0/favicon_green.png +0 -0
- data/spec/coverage/assets/0.10.0/favicon_red.png +0 -0
- data/spec/coverage/assets/0.10.0/favicon_yellow.png +0 -0
- data/spec/coverage/assets/0.10.0/loading.gif +0 -0
- data/spec/coverage/assets/0.10.0/magnify.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/coverage/index.html +0 -72
@@ -0,0 +1,626 @@
|
|
1
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
2
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
3
|
+
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
4
|
+
|
5
|
+
require_relative 'spec_helper.rb'
|
6
|
+
require 'mr_bump/version'
|
7
|
+
require 'mr_bump/change'
|
8
|
+
require 'mr_bump'
|
9
|
+
|
10
|
+
describe MrBump do
|
11
|
+
describe '#all_tagged_versions' do
|
12
|
+
before(:each) { allow(MrBump).to receive(:all_tags).and_return(tag_list) }
|
13
|
+
|
14
|
+
context 'when given a mixed list of tags' do
|
15
|
+
let(:tag_list) do
|
16
|
+
[
|
17
|
+
'safbdhasgbd',
|
18
|
+
'',
|
19
|
+
'9.1.32',
|
20
|
+
'21.1',
|
21
|
+
'132',
|
22
|
+
'Not.A Version'
|
23
|
+
]
|
24
|
+
end
|
25
|
+
it 'parses into versions where possible' do
|
26
|
+
expect(MrBump.all_tagged_versions).to match_array(
|
27
|
+
[
|
28
|
+
MrBump::Version.new('9.1.32'),
|
29
|
+
MrBump::Version.new('21.1'),
|
30
|
+
MrBump::Version.new('132')
|
31
|
+
]
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#current_uat' do
|
38
|
+
before(:each) do
|
39
|
+
allow(MrBump).to receive(:all_tags).and_return(tag_list)
|
40
|
+
allow(MrBump).to receive(:current_uat_major).and_return(MrBump::Version.new(next_version))
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when the next release is a minor bump' do
|
44
|
+
let(:next_version) { '1.2.0' }
|
45
|
+
let(:tag_list) do
|
46
|
+
[
|
47
|
+
'safbdhasgbd',
|
48
|
+
'',
|
49
|
+
'Not.A Version',
|
50
|
+
'1.2.3',
|
51
|
+
'1.2.2',
|
52
|
+
'1.1.1',
|
53
|
+
'1.1.9'
|
54
|
+
]
|
55
|
+
end
|
56
|
+
it 'returns the maximum tagged version with the same major and minor numbers' do
|
57
|
+
expect(MrBump.current_uat).to eq(MrBump::Version.new('1.2.3'))
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'when the next release is a major bump' do
|
62
|
+
let(:next_version) { '2.0.0' }
|
63
|
+
let(:tag_list) do
|
64
|
+
[
|
65
|
+
'safbdhasgbd',
|
66
|
+
'',
|
67
|
+
'Not.A Version',
|
68
|
+
'1.2.3',
|
69
|
+
'1.2.2',
|
70
|
+
'1.1.1',
|
71
|
+
'1.0.9',
|
72
|
+
'2.0.0',
|
73
|
+
'2.0.1',
|
74
|
+
'2.0.9'
|
75
|
+
]
|
76
|
+
end
|
77
|
+
it 'returns the maximum tagged version with the same major and minor numbers' do
|
78
|
+
expect(MrBump.current_uat).to eq(MrBump::Version.new('2.0.9'))
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe '#current_master' do
|
84
|
+
before(:each) do
|
85
|
+
allow(MrBump).to receive(:all_tags).and_return(tag_list)
|
86
|
+
allow(MrBump).to receive(:current_uat_major).and_return(MrBump::Version.new(next_version))
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'when the next release is a minor bump' do
|
90
|
+
let(:next_version) { '1.2.0' }
|
91
|
+
let(:tag_list) do
|
92
|
+
[
|
93
|
+
'safbdhasgbd',
|
94
|
+
'',
|
95
|
+
'Not.A Version',
|
96
|
+
'1.2.3',
|
97
|
+
'1.2.2',
|
98
|
+
'1.1.1',
|
99
|
+
'1.1.9'
|
100
|
+
]
|
101
|
+
end
|
102
|
+
it 'returns the maximum tagged version below the UAT version' do
|
103
|
+
expect(MrBump.current_master).to eq(MrBump::Version.new('1.1.9'))
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context 'when the next release is a major bump' do
|
108
|
+
let(:next_version) { '2.0.0' }
|
109
|
+
let(:tag_list) do
|
110
|
+
[
|
111
|
+
'safbdhasgbd',
|
112
|
+
'',
|
113
|
+
'Not.A Version',
|
114
|
+
'1.2.3',
|
115
|
+
'1.2.2',
|
116
|
+
'1.1.1',
|
117
|
+
'1.0.9',
|
118
|
+
'2.0.0',
|
119
|
+
'2.0.1',
|
120
|
+
'2.0.9'
|
121
|
+
]
|
122
|
+
end
|
123
|
+
it 'returns the maximum tagged version below the UAT version' do
|
124
|
+
expect(MrBump.current_master).to eq(MrBump::Version.new('1.2.3'))
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
describe '#latest_release_from_list' do
|
130
|
+
before(:each) { allow(MrBump).to receive(:config_file).and_return(config) }
|
131
|
+
let(:result) { MrBump.latest_release_from_list(branch_list) }
|
132
|
+
let(:config) do
|
133
|
+
{
|
134
|
+
'release_prefix' => "release#{separator}",
|
135
|
+
'release_suffix' => suffix
|
136
|
+
}
|
137
|
+
end
|
138
|
+
let(:suffix) { '' }
|
139
|
+
let(:separator) { '/' }
|
140
|
+
|
141
|
+
context 'With many release branches and using slash separator' do
|
142
|
+
let(:branch_list) do
|
143
|
+
[
|
144
|
+
'origin/release/10.16.0',
|
145
|
+
'origin/release/10.15.9',
|
146
|
+
'origin/release/10.1.0',
|
147
|
+
'origin/release/10.15.0',
|
148
|
+
'origin/rse/10.16.0',
|
149
|
+
'origin/master',
|
150
|
+
''
|
151
|
+
]
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'extracts the highest version' do
|
155
|
+
expect(result).to eq(MrBump::Version.new('10.16.0'))
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
context 'With a single release branch and using slash separator' do
|
160
|
+
let(:branch_list) do
|
161
|
+
[
|
162
|
+
'origin/release/10.16.9',
|
163
|
+
'origin/rse/1.2.0',
|
164
|
+
'origin/master',
|
165
|
+
''
|
166
|
+
]
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'extracts the version' do
|
170
|
+
expect(result).to eq(MrBump::Version.new('10.16.0'))
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
context 'With many release branches and minor versions and using slash separator' do
|
175
|
+
let(:branch_list) do
|
176
|
+
[
|
177
|
+
'origin/release/10.16.0',
|
178
|
+
'origin/release/10.15.9',
|
179
|
+
'origin/release/10.1.0',
|
180
|
+
'origin/release/10.15.0',
|
181
|
+
'origin/release/10.16.9',
|
182
|
+
'origin/rse/10.16.0',
|
183
|
+
'origin/master',
|
184
|
+
''
|
185
|
+
]
|
186
|
+
end
|
187
|
+
|
188
|
+
it 'extracts the highest version with patch version set to 0' do
|
189
|
+
expect(result).to eq(MrBump::Version.new('10.16.0'))
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
context 'With a single release branch with a patch number and using slash separator' do
|
194
|
+
let(:branch_list) do
|
195
|
+
[
|
196
|
+
'origin/release/10.16.9',
|
197
|
+
'origin/rse/1.2.0',
|
198
|
+
'origin/master',
|
199
|
+
''
|
200
|
+
]
|
201
|
+
end
|
202
|
+
|
203
|
+
it 'extracts the version with patch version set to 0' do
|
204
|
+
expect(result).to eq(MrBump::Version.new('10.16.0'))
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
context 'With no release branches' do
|
209
|
+
let(:branch_list) do
|
210
|
+
[
|
211
|
+
]
|
212
|
+
end
|
213
|
+
|
214
|
+
it 'returns 0.0.0 as the version' do
|
215
|
+
expect(result).to eq(MrBump::Version.new('0.0.0'))
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
context 'With many release branches and changing the default prefix' do
|
220
|
+
let(:branch_list) do
|
221
|
+
[
|
222
|
+
'origin/release?10.16.0',
|
223
|
+
'origin/release/10.17.0',
|
224
|
+
'origin/release?10.15.9',
|
225
|
+
'origin/release/10.1.0',
|
226
|
+
'origin/release/10.15.0',
|
227
|
+
'origin/rse/10.16.0',
|
228
|
+
'origin/master',
|
229
|
+
''
|
230
|
+
]
|
231
|
+
end
|
232
|
+
let(:separator) { '?' }
|
233
|
+
|
234
|
+
it 'extracts the correct highest version, igoring branches with incorrect prefix' do
|
235
|
+
expect(result).to eq(MrBump::Version.new('10.16.0'))
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
context 'With many release branches and changing the default suffix' do
|
240
|
+
let(:branch_list) do
|
241
|
+
[
|
242
|
+
'origin/release/10.16.0.',
|
243
|
+
'origin/release/10.17.0.',
|
244
|
+
'origin/release/10.15.9.',
|
245
|
+
'origin/release/10.1.0.',
|
246
|
+
'origin/release/10.15.0',
|
247
|
+
'origin/release/10.18.0',
|
248
|
+
'origin/rse/10.16.0',
|
249
|
+
'origin/master',
|
250
|
+
''
|
251
|
+
]
|
252
|
+
end
|
253
|
+
let(:suffix) { '.' }
|
254
|
+
|
255
|
+
it 'extracts the correct highest version, igoring branches with incorrect suffix' do
|
256
|
+
expect(result).to eq(MrBump::Version.new('10.17.0'))
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
260
|
+
context 'With many release branches and changing the default prefix' do
|
261
|
+
let(:branch_list) do
|
262
|
+
[
|
263
|
+
'origin/release?10.16.0?',
|
264
|
+
'origin/release/10.17.0?',
|
265
|
+
'origin/release?10.15.9?',
|
266
|
+
'origin/release/10.1.0?',
|
267
|
+
'origin/release/10.15.0?',
|
268
|
+
'origin/release/11.1.0',
|
269
|
+
'origin/release/11.15.0',
|
270
|
+
'origin/release?12.1.0',
|
271
|
+
'origin/release?12.15.0',
|
272
|
+
'origin/rse/10.16.0?',
|
273
|
+
'origin/master',
|
274
|
+
''
|
275
|
+
]
|
276
|
+
end
|
277
|
+
let(:separator) { '?' }
|
278
|
+
let(:suffix) { '?' }
|
279
|
+
|
280
|
+
it 'extracts the correct highest version, igoring branches with incorrect prefix or suffix' do
|
281
|
+
expect(result).to eq(MrBump::Version.new('10.16.0'))
|
282
|
+
end
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
286
|
+
describe '#on_master_branch?' do
|
287
|
+
before(:each) { allow(MrBump).to receive(:current_branch).and_return(current_branch) }
|
288
|
+
|
289
|
+
context 'when on a branch called master' do
|
290
|
+
let(:current_branch) { 'master' }
|
291
|
+
|
292
|
+
it 'returns true' do
|
293
|
+
expect(MrBump.on_master_branch?).to eq(true)
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
context 'when on a branch called master$' do
|
298
|
+
let(:current_branch) { 'master$' }
|
299
|
+
|
300
|
+
it 'returns false' do
|
301
|
+
expect(MrBump.on_master_branch?).to eq(false)
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
305
|
+
context 'when on a branch called ^master' do
|
306
|
+
let(:current_branch) { '^master' }
|
307
|
+
|
308
|
+
it 'returns false' do
|
309
|
+
expect(MrBump.on_master_branch?).to eq(false)
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
context 'when on a branch called release' do
|
314
|
+
let(:current_branch) { 'release' }
|
315
|
+
|
316
|
+
it 'returns false' do
|
317
|
+
expect(MrBump.on_master_branch?).to eq(false)
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
321
|
+
context 'when on a branch called develop' do
|
322
|
+
let(:current_branch) { 'develop' }
|
323
|
+
|
324
|
+
it 'returns false' do
|
325
|
+
expect(MrBump.on_master_branch?).to eq(false)
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
describe '#on_develop_branch?' do
|
331
|
+
before(:each) { allow(MrBump).to receive(:current_branch).and_return(current_branch) }
|
332
|
+
|
333
|
+
context 'when on a branch called develop' do
|
334
|
+
let(:current_branch) { 'develop' }
|
335
|
+
|
336
|
+
it 'returns true' do
|
337
|
+
expect(MrBump.on_develop_branch?).to eq(true)
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
341
|
+
context 'when on a branch called develop$' do
|
342
|
+
let(:current_branch) { 'develop$' }
|
343
|
+
|
344
|
+
it 'returns false' do
|
345
|
+
expect(MrBump.on_develop_branch?).to eq(false)
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
context 'when on a branch called ^develop' do
|
350
|
+
let(:current_branch) { '^develop' }
|
351
|
+
|
352
|
+
it 'returns false' do
|
353
|
+
expect(MrBump.on_develop_branch?).to eq(false)
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
context 'when on a branch called release' do
|
358
|
+
let(:current_branch) { 'release' }
|
359
|
+
|
360
|
+
it 'returns false' do
|
361
|
+
expect(MrBump.on_develop_branch?).to eq(false)
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
context 'when on a branch called master' do
|
366
|
+
let(:current_branch) { 'master' }
|
367
|
+
|
368
|
+
it 'returns false' do
|
369
|
+
expect(MrBump.on_develop_branch?).to eq(false)
|
370
|
+
end
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
describe '#on_release_branch?' do
|
375
|
+
before(:each) { allow(MrBump).to receive(:current_branch).and_return(current_branch) }
|
376
|
+
before(:each) { allow(MrBump).to receive(:config_file).and_return(config) }
|
377
|
+
|
378
|
+
context 'with default config' do
|
379
|
+
let(:config) do
|
380
|
+
{
|
381
|
+
'release_prefix' => 'release/',
|
382
|
+
'release_suffix' => ''
|
383
|
+
}
|
384
|
+
end
|
385
|
+
context 'when on a branch called master' do
|
386
|
+
let(:current_branch) { 'master' }
|
387
|
+
|
388
|
+
it 'returns false' do
|
389
|
+
expect(MrBump.on_release_branch?).to eq(false)
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
context 'when on a branch called release/' do
|
394
|
+
let(:current_branch) { 'release/' }
|
395
|
+
|
396
|
+
it 'returns false' do
|
397
|
+
expect(MrBump.on_release_branch?).to eq(false)
|
398
|
+
end
|
399
|
+
end
|
400
|
+
|
401
|
+
context 'when on a branch called release/0.0.0' do
|
402
|
+
let(:current_branch) { 'release/0.0.0' }
|
403
|
+
|
404
|
+
it 'returns true' do
|
405
|
+
expect(MrBump.on_release_branch?).to eq(true)
|
406
|
+
end
|
407
|
+
end
|
408
|
+
|
409
|
+
context 'when on a branch called release/0.0' do
|
410
|
+
let(:current_branch) { 'release/0.0' }
|
411
|
+
|
412
|
+
it 'returns true' do
|
413
|
+
expect(MrBump.on_release_branch?).to eq(true)
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
417
|
+
context 'when on a branch called develop' do
|
418
|
+
let(:current_branch) { 'develop' }
|
419
|
+
|
420
|
+
it 'returns false' do
|
421
|
+
expect(MrBump.on_master_branch?).to eq(false)
|
422
|
+
end
|
423
|
+
end
|
424
|
+
end
|
425
|
+
|
426
|
+
context 'with altered config' do
|
427
|
+
let(:config) do
|
428
|
+
{
|
429
|
+
'release_prefix' => '?v',
|
430
|
+
'release_suffix' => '+'
|
431
|
+
}
|
432
|
+
end
|
433
|
+
|
434
|
+
context 'branch with correct prefix and suffix' do
|
435
|
+
let(:current_branch) { '?v0.0.0+' }
|
436
|
+
|
437
|
+
it 'returns true' do
|
438
|
+
expect(MrBump.on_release_branch?).to eq(true)
|
439
|
+
end
|
440
|
+
end
|
441
|
+
|
442
|
+
context 'branch with correct prefix and suffix and missing patch version' do
|
443
|
+
let(:current_branch) { '?v0.0+' }
|
444
|
+
|
445
|
+
it 'returns true' do
|
446
|
+
expect(MrBump.on_release_branch?).to eq(true)
|
447
|
+
end
|
448
|
+
end
|
449
|
+
|
450
|
+
context 'on a branch which is valid with default config' do
|
451
|
+
let(:current_branch) { 'release/0.0.0' }
|
452
|
+
|
453
|
+
it 'returns false' do
|
454
|
+
expect(MrBump.on_release_branch?).to eq(false)
|
455
|
+
end
|
456
|
+
end
|
457
|
+
end
|
458
|
+
end
|
459
|
+
|
460
|
+
describe '#uat_branch?' do
|
461
|
+
before(:each) do
|
462
|
+
allow(MrBump).to receive(:current_uat_major).and_return(MrBump::Version.new('0.0.0'))
|
463
|
+
end
|
464
|
+
before(:each) { allow(MrBump).to receive(:config_file).and_return(config) }
|
465
|
+
|
466
|
+
context 'with default config' do
|
467
|
+
let(:config) do
|
468
|
+
{
|
469
|
+
'release_prefix' => 'release/',
|
470
|
+
'release_suffix' => ''
|
471
|
+
}
|
472
|
+
end
|
473
|
+
|
474
|
+
it 'correctly constucts uat branch name' do
|
475
|
+
expect(MrBump.uat_branch).to eq('release/0.0.0')
|
476
|
+
end
|
477
|
+
end
|
478
|
+
|
479
|
+
context 'with altered config' do
|
480
|
+
let(:config) do
|
481
|
+
{
|
482
|
+
'release_prefix' => '?v',
|
483
|
+
'release_suffix' => '+'
|
484
|
+
}
|
485
|
+
end
|
486
|
+
|
487
|
+
it 'correctly constucts uat branch name' do
|
488
|
+
expect(MrBump.uat_branch).to eq('?v0.0.0+')
|
489
|
+
end
|
490
|
+
end
|
491
|
+
end
|
492
|
+
|
493
|
+
describe '#change_log_items_for_range' do
|
494
|
+
let(:log) do
|
495
|
+
[
|
496
|
+
'Merge pull request #4 from mr_bump/hotfix/DEV-1261',
|
497
|
+
'Comment',
|
498
|
+
'Merge pull request #1376 from mr_bump/release/10.19.0',
|
499
|
+
'Comment',
|
500
|
+
'Over several',
|
501
|
+
'Lines',
|
502
|
+
'Merge pull request #1365 from mr_bump/revert_contact_fixes',
|
503
|
+
'Merge pull request #1365 from mr_bump/develop',
|
504
|
+
'Merge pull request #233 from mr_bump/bugfix/master',
|
505
|
+
'asdasd',
|
506
|
+
'Merge pull request #1336 from mr_bump/MDV-1261',
|
507
|
+
'wqefqfqefqwefqef'
|
508
|
+
]
|
509
|
+
end
|
510
|
+
before(:each) { allow(MrBump).to receive(:merge_logs).and_return(log) }
|
511
|
+
|
512
|
+
context 'when given output from git log' do
|
513
|
+
let(:changes) { MrBump.change_log_items_for_range('', '') }
|
514
|
+
|
515
|
+
it 'converts raw git log ouput to changlog objects' do
|
516
|
+
expect(changes).to all(be_a(MrBump::Change))
|
517
|
+
end
|
518
|
+
|
519
|
+
it 'filters out release and master branch merges' do
|
520
|
+
expect(changes.map(&:branch_name)).to eq(['DEV-1261', 'revert_contact_fixes', 'MDV-1261'])
|
521
|
+
end
|
522
|
+
end
|
523
|
+
end
|
524
|
+
|
525
|
+
<<<<<<< HEAD
|
526
|
+
describe '#file_prepend' do
|
527
|
+
it 'prepends to files' do
|
528
|
+
file = 'filename.md'
|
529
|
+
before = 'String before'
|
530
|
+
prepend_str = 'Sting to prepend. '
|
531
|
+
after = prepend_str + before
|
532
|
+
|
533
|
+
read_buffer = StringIO.new before
|
534
|
+
write_buffer = StringIO.new
|
535
|
+
|
536
|
+
allow(File).to receive(:open).with(file, 'r').and_yield(read_buffer)
|
537
|
+
allow(File).to receive(:open).with(file, 'w').and_yield(write_buffer)
|
538
|
+
|
539
|
+
MrBump.file_prepend(file, prepend_str)
|
540
|
+
expect(write_buffer.string).to eq(after)
|
541
|
+
=======
|
542
|
+
describe '#last_release' do
|
543
|
+
before do
|
544
|
+
allow(MrBump).to receive(:current_uat).and_return(MrBump::Version.new('0.1.3'))
|
545
|
+
allow(MrBump).to receive(:current_uat_major).and_return(MrBump::Version.new('0.1.0'))
|
546
|
+
allow(MrBump).to receive(:current_master).and_return(MrBump::Version.new('0.0.1'))
|
547
|
+
end
|
548
|
+
|
549
|
+
context 'when on master branch' do
|
550
|
+
before do
|
551
|
+
allow(MrBump).to receive(:on_master_branch?).and_return(true)
|
552
|
+
allow(MrBump).to receive(:on_release_branch?).and_return(false)
|
553
|
+
allow(MrBump).to receive(:on_develop_branch?).and_return(false)
|
554
|
+
end
|
555
|
+
|
556
|
+
it 'returns the master version' do
|
557
|
+
expect(MrBump.last_release).to eq(MrBump::Version.new('0.0.1'))
|
558
|
+
end
|
559
|
+
end
|
560
|
+
context 'when on release branch' do
|
561
|
+
before do
|
562
|
+
allow(MrBump).to receive(:on_master_branch?).and_return(false)
|
563
|
+
allow(MrBump).to receive(:on_release_branch?).and_return(true)
|
564
|
+
allow(MrBump).to receive(:on_develop_branch?).and_return(false)
|
565
|
+
end
|
566
|
+
|
567
|
+
it 'returns the release version' do
|
568
|
+
expect(MrBump.last_release).to eq(MrBump::Version.new('0.1.3'))
|
569
|
+
end
|
570
|
+
end
|
571
|
+
context 'when on develop branch' do
|
572
|
+
before do
|
573
|
+
allow(MrBump).to receive(:on_master_branch?).and_return(false)
|
574
|
+
allow(MrBump).to receive(:on_release_branch?).and_return(false)
|
575
|
+
allow(MrBump).to receive(:on_develop_branch?).and_return(true)
|
576
|
+
end
|
577
|
+
|
578
|
+
it 'returns the last release version' do
|
579
|
+
expect(MrBump.last_release).to eq(MrBump::Version.new('0.1.0'))
|
580
|
+
end
|
581
|
+
end
|
582
|
+
end
|
583
|
+
|
584
|
+
describe '#next_release' do
|
585
|
+
before do
|
586
|
+
allow(MrBump).to receive(:current_uat).and_return(MrBump::Version.new('0.1.3'))
|
587
|
+
allow(MrBump).to receive(:current_uat_major).and_return(MrBump::Version.new('0.1.0'))
|
588
|
+
allow(MrBump).to receive(:current_master).and_return(MrBump::Version.new('0.0.1'))
|
589
|
+
end
|
590
|
+
|
591
|
+
context 'when on master branch' do
|
592
|
+
before do
|
593
|
+
allow(MrBump).to receive(:on_master_branch?).and_return(true)
|
594
|
+
allow(MrBump).to receive(:on_release_branch?).and_return(false)
|
595
|
+
allow(MrBump).to receive(:on_develop_branch?).and_return(false)
|
596
|
+
end
|
597
|
+
|
598
|
+
it 'returns the master version + a patch' do
|
599
|
+
expect(MrBump.next_release).to eq(MrBump::Version.new('0.0.2'))
|
600
|
+
end
|
601
|
+
end
|
602
|
+
context 'when on release branch' do
|
603
|
+
before do
|
604
|
+
allow(MrBump).to receive(:on_master_branch?).and_return(false)
|
605
|
+
allow(MrBump).to receive(:on_release_branch?).and_return(true)
|
606
|
+
allow(MrBump).to receive(:on_develop_branch?).and_return(false)
|
607
|
+
end
|
608
|
+
|
609
|
+
it 'returns the release version' do
|
610
|
+
expect(MrBump.next_release).to eq(MrBump::Version.new('0.1.4'))
|
611
|
+
end
|
612
|
+
end
|
613
|
+
context 'when on develop branch' do
|
614
|
+
before do
|
615
|
+
allow(MrBump).to receive(:on_master_branch?).and_return(false)
|
616
|
+
allow(MrBump).to receive(:on_release_branch?).and_return(false)
|
617
|
+
allow(MrBump).to receive(:on_develop_branch?).and_return(true)
|
618
|
+
end
|
619
|
+
|
620
|
+
it 'returns the release version plus a minor' do
|
621
|
+
expect(MrBump.next_release).to eq(MrBump::Version.new('0.2.0'))
|
622
|
+
end
|
623
|
+
>>>>>>> Allow mr_bump to cut new releases
|
624
|
+
end
|
625
|
+
end
|
626
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,10 +8,11 @@ Bundler.setup
|
|
8
8
|
require 'simplecov'
|
9
9
|
require 'coveralls'
|
10
10
|
|
11
|
-
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
11
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new [
|
12
12
|
SimpleCov::Formatter::HTMLFormatter,
|
13
13
|
Coveralls::SimpleCov::Formatter
|
14
14
|
]
|
15
|
+
|
15
16
|
SimpleCov.start do
|
16
17
|
add_filter 'spec'
|
17
18
|
track_files '**/*.rb'
|