Merge branch 'fix/gb/fix-invalid-stage-status-transition' into 'master'

Set a default CI/CD status when it is not known

Closes #36790

See merge request !13737
This commit is contained in:
Kamil Trzciński 2017-08-25 09:54:42 +00:00
commit 04c092b58d
2 changed files with 15 additions and 0 deletions

View File

@ -17,6 +17,10 @@ module Ci
validates :pipeline, presence: true, unless: :importing?
validates :name, presence: true, unless: :importing?
after_initialize do |stage|
self.status = DEFAULT_STATUS if self.status.nil?
end
state_machine :status, initial: :created do
event :enqueue do
transition created: :pending

View File

@ -38,6 +38,17 @@ describe Ci::Stage, :models do
expect(stage.status).to eq 'success'
end
end
context 'when stage status is not defined' do
before do
stage.update_column(:status, nil)
end
it 'sets the default value' do
expect(described_class.find(stage.id).status)
.to eq 'created'
end
end
end
describe 'update_status' do