From d8aed6a27bc6e5e5cd14a10219473c34ba424949 Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 26 Oct 2016 11:34:40 +0200 Subject: Fix optimistic locking --- spec/models/ci/pipeline_spec.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'spec/models/ci') diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index 43397c5ae39..e13cd8c1dd0 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -138,9 +138,9 @@ describe Ci::Pipeline, models: true do describe 'state machine' do let(:current) { Time.now.change(usec: 0) } - let(:build) { create_build('build1', current, 10) } - let(:build_b) { create_build('build2', current, 20) } - let(:build_c) { create_build('build3', current + 50, 10) } + let(:build) { create_build('build1', 0) } + let(:build_b) { create_build('build2', 0) } + let(:build_c) { create_build('build3', 0) } describe '#duration' do before do @@ -163,11 +163,12 @@ describe Ci::Pipeline, models: true do build_c.success end - pipeline.drop + # We have to reload pipeline, because its status is updated by processing builds + pipeline.reload.drop end it 'matches sum of builds duration' do - pipeline.reload + binding.pry expect(pipeline.duration).to eq(40) end @@ -455,7 +456,9 @@ describe Ci::Pipeline, models: true do context 'when all builds succeed' do before do build_a.success - build_b.success + + # We have to reload build_b as this is in next stage and it gets triggered by PipelineProcessWorker + build_b.reload.success end it 'receives a success event once' do -- cgit v1.2.1 From f19e259fb816bcaaeab9720d8b277b12b766698e Mon Sep 17 00:00:00 2001 From: Kamil Trzcinski Date: Wed, 26 Oct 2016 11:47:30 +0200 Subject: Fix duration specs --- spec/models/ci/pipeline_spec.rb | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'spec/models/ci') diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index e13cd8c1dd0..5eb14dc6bd2 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -144,31 +144,24 @@ describe Ci::Pipeline, models: true do describe '#duration' do before do - pipeline.update(created_at: current) - - travel_to(current + 5) do - pipeline.run - pipeline.save - end - travel_to(current + 30) do - build.success + build.run! + build.success! + build_b.run! + build_c.run! end travel_to(current + 40) do - build_b.drop + build_b.drop! end travel_to(current + 70) do - build_c.success + build_c.success! end - - # We have to reload pipeline, because its status is updated by processing builds - pipeline.reload.drop end it 'matches sum of builds duration' do - binding.pry + pipeline.reload expect(pipeline.duration).to eq(40) end -- cgit v1.2.1