summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-02-18 10:52:57 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-02-18 10:52:57 +0100
commit0ae7c954537663aa2a574133e42d05eafe5db6fb (patch)
treeabbc6c25673b88a656634a2de1c6e85cb0de8dad
parent364072b7d0232a5e306a305ca0bb40b03da5b630 (diff)
downloadgitlab-ce-0ae7c954537663aa2a574133e42d05eafe5db6fb.tar.gz
Add specs for build status helper class
-rw-r--r--spec/factories/ci/builds.rb8
-rw-r--r--spec/lib/ci/status_spec.rb17
-rw-r--r--spec/services/ci/create_builds_service_spec.rb14
3 files changed, 36 insertions, 3 deletions
diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb
index c1b6ecd329a..46a211fa60e 100644
--- a/spec/factories/ci/builds.rb
+++ b/spec/factories/ci/builds.rb
@@ -16,6 +16,14 @@ FactoryGirl.define do
commit factory: :ci_commit
+ trait :success do
+ status 'success'
+ end
+
+ trait :failed do
+ status 'failed'
+ end
+
trait :canceled do
status 'canceled'
end
diff --git a/spec/lib/ci/status_spec.rb b/spec/lib/ci/status_spec.rb
new file mode 100644
index 00000000000..aa59bdff1af
--- /dev/null
+++ b/spec/lib/ci/status_spec.rb
@@ -0,0 +1,17 @@
+require 'spec_helper'
+
+describe Ci::Status do
+ describe '.get_status' do
+ subject { described_class.get_status(builds) }
+
+ 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
+ end
+end
diff --git a/spec/services/ci/create_builds_service_spec.rb b/spec/services/ci/create_builds_service_spec.rb
index 9bf72f45766..1fca3628686 100644
--- a/spec/services/ci/create_builds_service_spec.rb
+++ b/spec/services/ci/create_builds_service_spec.rb
@@ -5,16 +5,24 @@ describe Ci::CreateBuildsService, services: true do
let(:user) { create(:user) }
describe '#execute' do
+ # Using stubbed .gitlab-ci.yml created in commit factory
+ #
+
subject do
- described_class.new.execute(commit, stage, 'master', nil, user, nil, status)
+ described_class.new.execute(commit, 'test', 'master', nil, user, nil, status)
end
- context 'stubbed .gitlab-ci.yml' do
- let(:stage) { 'test' }
+ context 'next builds available' do
let(:status) { 'success' }
it { is_expected.to be_an_instance_of Array }
it { is_expected.to all(be_an_instance_of Ci::Build) }
end
+
+ context 'builds skipped' do
+ let(:status) { 'skipped' }
+
+ it { is_expected.to be_empty }
+ end
end
end