|
2 | 2 |
|
3 | 3 | RSpec.describe CreateGithubRelease::Tasks::UpdateVersion do |
4 | 4 | let(:release_type) { 'major' } |
| 5 | + let(:pre) { false } |
| 6 | + let(:pre_type) { nil } |
5 | 7 | let(:task) { described_class.new(project) } |
6 | 8 | let(:project) { CreateGithubRelease::Project.new(options) } |
7 | | - let(:options) { CreateGithubRelease::CommandLine::Options.new { |o| o.release_type = release_type } } |
| 9 | + let(:options) do |
| 10 | + CreateGithubRelease::CommandLine::Options.new do |o| |
| 11 | + o.release_type = release_type |
| 12 | + o.pre = pre |
| 13 | + o.pre_type = pre_type |
| 14 | + end |
| 15 | + end |
8 | 16 |
|
9 | 17 | let(:version_file) { 'lib/my_gem/version.rb' } |
10 | 18 |
|
|
29 | 37 | end |
30 | 38 | end |
31 | 39 |
|
| 40 | + context 'when this is a pre-release when default pre-release type' do |
| 41 | + let(:pre) { true } |
| 42 | + |
| 43 | + let(:mocked_commands) do |
| 44 | + [ |
| 45 | + MockedCommand.new('semverify next-major --pre', exitstatus: semverify_exitstatus), |
| 46 | + MockedCommand.new('semverify file', stdout: "#{version_file}\n", exitstatus: semverify_file_exitstatus), |
| 47 | + MockedCommand.new("git add \"#{version_file}\"", exitstatus: git_exitstatus) |
| 48 | + ] |
| 49 | + end |
| 50 | + |
| 51 | + let(:semverify_exitstatus) { 0 } |
| 52 | + let(:semverify_file_exitstatus) { 0 } |
| 53 | + let(:git_exitstatus) { 0 } |
| 54 | + |
| 55 | + it 'should increment the version with the --pre flag' do |
| 56 | + expect { subject }.not_to raise_error |
| 57 | + end |
| 58 | + end |
| 59 | + |
| 60 | + context 'when this is an alpha pre-release' do |
| 61 | + let(:pre) { true } |
| 62 | + let(:pre_type) { 'alpha' } |
| 63 | + |
| 64 | + let(:mocked_commands) do |
| 65 | + [ |
| 66 | + MockedCommand.new('semverify next-major --pre --pre-type=alpha', exitstatus: semverify_exitstatus), |
| 67 | + MockedCommand.new('semverify file', stdout: "#{version_file}\n", exitstatus: semverify_file_exitstatus), |
| 68 | + MockedCommand.new("git add \"#{version_file}\"", exitstatus: git_exitstatus) |
| 69 | + ] |
| 70 | + end |
| 71 | + |
| 72 | + let(:semverify_exitstatus) { 0 } |
| 73 | + let(:semverify_file_exitstatus) { 0 } |
| 74 | + let(:git_exitstatus) { 0 } |
| 75 | + |
| 76 | + it 'should increment the version with the --pre and --pre-type=alpha args' do |
| 77 | + expect { subject }.not_to raise_error |
| 78 | + end |
| 79 | + end |
| 80 | + |
| 81 | + context 'when changing the pre-release type to beta' do |
| 82 | + let(:release_type) { 'pre' } |
| 83 | + let(:pre_type) { 'beta' } |
| 84 | + |
| 85 | + let(:mocked_commands) do |
| 86 | + [ |
| 87 | + MockedCommand.new('semverify next-pre --pre-type=beta', exitstatus: semverify_exitstatus), |
| 88 | + MockedCommand.new('semverify file', stdout: "#{version_file}\n", exitstatus: semverify_file_exitstatus), |
| 89 | + MockedCommand.new("git add \"#{version_file}\"", exitstatus: git_exitstatus) |
| 90 | + ] |
| 91 | + end |
| 92 | + |
| 93 | + let(:semverify_exitstatus) { 0 } |
| 94 | + let(:semverify_file_exitstatus) { 0 } |
| 95 | + let(:git_exitstatus) { 0 } |
| 96 | + |
| 97 | + it 'should increment the version with the pre release type and --pre-type=alpha arg' do |
| 98 | + expect { subject }.not_to raise_error |
| 99 | + end |
| 100 | + end |
| 101 | + |
32 | 102 | context 'when this is NOT the first release' do |
33 | 103 | let(:mocked_commands) do |
34 | 104 | [ |
|
0 commit comments