Commit f91e8269 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Add tests for build play extended detailed status

parent ffafd097
...@@ -12,12 +12,14 @@ FactoryGirl.define do ...@@ -12,12 +12,14 @@ FactoryGirl.define do
started_at 'Di 29. Okt 09:51:28 CET 2013' started_at 'Di 29. Okt 09:51:28 CET 2013'
finished_at 'Di 29. Okt 09:53:28 CET 2013' finished_at 'Di 29. Okt 09:53:28 CET 2013'
commands 'ls -a' commands 'ls -a'
options do options do
{ {
image: "ruby:2.1", image: "ruby:2.1",
services: ["postgres"] services: ["postgres"]
} }
end end
yaml_variables do yaml_variables do
[ [
{ key: :DB_NAME, value: 'postgres', public: true } { key: :DB_NAME, value: 'postgres', public: true }
...@@ -60,15 +62,20 @@ FactoryGirl.define do ...@@ -60,15 +62,20 @@ FactoryGirl.define do
end end
trait :teardown_environment do trait :teardown_environment do
options do environment 'staging'
{ environment: { action: 'stop' } } options environment: { name: 'staging',
end action: 'stop' }
end end
trait :allowed_to_fail do trait :allowed_to_fail do
allow_failure true allow_failure true
end end
trait :playable do
skipped
manual
end
after(:build) do |build, evaluator| after(:build) do |build, evaluator|
build.project = build.pipeline.project build.project = build.pipeline.project
end end
......
require 'spec_helper'
describe Gitlab::Ci::Status::Build::Play do
let(:core_status) { double('core status') }
let(:user) { double('user') }
subject do
described_class.new(core_status)
end
describe '#text' do
it { expect(subject.text).to eq 'play' }
end
describe '#label' do
it { expect(subject.label).to eq 'play' }
end
describe '#icon' do
it 'does not override core status icon' do
expect(core_status).to receive(:icon)
subject.icon
end
end
describe '.matches?' do
context 'build is playable' do
context 'when build stops an environment' do
let(:build) do
create(:ci_build, :playable, :teardown_environment)
end
it 'does not match' do
expect(described_class.matches?(build, user))
.to be false
end
end
context 'when build does not stop an environment' do
let(:build) { create(:ci_build, :playable) }
it 'is a correct match' do
expect(described_class.matches?(build, user))
.to be true
end
end
end
context 'when build is not playable' do
let(:build) { create(:ci_build) }
it 'does not match' do
expect(described_class.matches?(build, user))
.to be false
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment