diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2016-02-19 19:22:25 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-02-19 20:29:53 +0100 |
commit | 3d9943394e571753ad743c90882c653108794d8b (patch) | |
tree | 227f00bad02f7ca88b5bb89f4f1cc662341428e7 /spec | |
parent | cc314eec83db99e7366a972c90584bc52eb72b0a (diff) | |
download | gitlab-ce-3d9943394e571753ad743c90882c653108794d8b.tar.gz |
Merge branch 'commit-status-fix' into 'master'
Fix missing ignored? for GenericCommitStatus
This is pretty important fix. We should not release 8.5 without this.
It critical error when handling GenericCommitStatus:
```
undefined method `ignored?' for #<GenericCommitStatus:0x007fe1a2a20fe0>
```
cc @grzesiek
See merge request !2899
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/ci/status_spec.rb | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/spec/lib/ci/status_spec.rb b/spec/lib/ci/status_spec.rb index cc4199dc7b6..a2eb14f3a97 100644 --- a/spec/lib/ci/status_spec.rb +++ b/spec/lib/ci/status_spec.rb @@ -2,36 +2,40 @@ require 'spec_helper' describe Ci::Status do describe '.get_status' do - subject { described_class.get_status(builds) } + subject { described_class.get_status(statuses) } + + [:ci_build, :generic_commit_status].each do |type| + context "for #{type}" do + context 'all successful' do + let(:statuses) { Array.new(2) { create(type, status: :success) } } + it { is_expected.to eq 'success' } + end - context 'all builds successful' do - let(:builds) { Array.new(2) { create(:ci_build, :success) } } - it { is_expected.to eq 'success' } - end - - context 'at least one build failed' do - let(:builds) { [create(:ci_build, :success), create(:ci_build, :failed)] } - it { is_expected.to eq 'failed' } - end + context 'at least one failed' do + let(:statuses) { [create(type, status: :success), create(type, status: :failed)] } + it { is_expected.to eq 'failed' } + end - context 'at least one running' do - let(:builds) { [create(:ci_build, :success), create(:ci_build, :running)] } - it { is_expected.to eq 'running' } - end + context 'at least one running' do + let(:statuses) { [create(type, status: :success), create(type, status: :running)] } + it { is_expected.to eq 'running' } + end - context 'at least one pending' do - let(:builds) { [create(:ci_build, :success), create(:ci_build, :pending)] } - it { is_expected.to eq 'running' } - end + context 'at least one pending' do + let(:statuses) { [create(type, status: :success), create(type, status: :pending)] } + it { is_expected.to eq 'running' } + end - context 'build success and failed but allowed to fail' do - let(:builds) { [create(:ci_build, :success), create(:ci_build, :failed, :allowed_to_fail)] } - it { is_expected.to eq 'success' } - end + context 'success and failed but allowed to fail' do + let(:statuses) { [create(type, status: :success), create(type, status: :failed, allow_failure: true)] } + it { is_expected.to eq 'success' } + end - context 'one build failed but allowed to fail' do - let(:builds) { [create(:ci_build, :failed, :allowed_to_fail)] } - it { is_expected.to eq 'success' } + context 'one failed but allowed to fail' do + let(:statuses) { [create(type, status: :failed, allow_failure: true)] } + it { is_expected.to eq 'success' } + end + end end end end |