summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2016-02-19 19:22:25 +0000
committerRémy Coutable <remy@rymai.me>2016-02-19 20:29:53 +0100
commit3d9943394e571753ad743c90882c653108794d8b (patch)
tree227f00bad02f7ca88b5bb89f4f1cc662341428e7 /spec
parentcc314eec83db99e7366a972c90584bc52eb72b0a (diff)
downloadgitlab-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.rb54
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