diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-02-18 10:52:57 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-02-18 10:52:57 +0100 |
commit | 0ae7c954537663aa2a574133e42d05eafe5db6fb (patch) | |
tree | abbc6c25673b88a656634a2de1c6e85cb0de8dad | |
parent | 364072b7d0232a5e306a305ca0bb40b03da5b630 (diff) | |
download | gitlab-ce-0ae7c954537663aa2a574133e42d05eafe5db6fb.tar.gz |
Add specs for build status helper class
-rw-r--r-- | spec/factories/ci/builds.rb | 8 | ||||
-rw-r--r-- | spec/lib/ci/status_spec.rb | 17 | ||||
-rw-r--r-- | spec/services/ci/create_builds_service_spec.rb | 14 |
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 |