Skip to content
Snippets Groups Projects
Commit aa812dbf authored by Kamil Trzcińśki's avatar Kamil Trzcińśki
Browse files

Fix missing ignored? for GenericCommitStatus

parent 1817b766
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -116,10 +116,6 @@ module Ci
end
end
 
def ignored?
failed? && allow_failure?
end
def retryable?
project.builds_enabled? && commands.present?
end
Loading
Loading
Loading
Loading
@@ -113,6 +113,10 @@ class CommitStatus < ActiveRecord::Base
canceled? || success? || failed?
end
 
def ignored?
failed? && allow_failure?
end
def duration
if started_at && finished_at
finished_at - started_at
Loading
Loading
Loading
Loading
@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment