Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-08-12 12:53:27 +0300
committerKamil Trzcinski <ayufan@ayufan.eu>2016-08-12 12:53:27 +0300
commitad3e1edcfce1e24fb9889d5d73852680cf4facf9 (patch)
treee8054ae4ad1b0d6882971cbeda3ff4c6fa59187e /spec
parente1f05b932de5553462793fb88fdea2ca54072d40 (diff)
Added specs for started_at and finished_at
Diffstat (limited to 'spec')
-rw-r--r--spec/models/ci/pipeline_spec.rb46
1 files changed, 38 insertions, 8 deletions
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb
index adfe4bdd0c8..28d07f67b26 100644
--- a/spec/models/ci/pipeline_spec.rb
+++ b/spec/models/ci/pipeline_spec.rb
@@ -120,18 +120,48 @@ describe Ci::Pipeline, models: true do
end
end
- describe '#duration' do
+ describe 'state machine' do
let(:current) { Time.now.change(usec: 0) }
- let!(:build) { create :ci_build, name: 'build1', pipeline: pipeline, started_at: current - 60, finished_at: current }
- let!(:build2) { create :ci_build, name: 'build2', pipeline: pipeline, started_at: current - 60, finished_at: current }
+ let(:build) { create :ci_build, name: 'build1', pipeline: pipeline, started_at: current - 60, finished_at: current }
+ let(:build2) { create :ci_build, name: 'build2', pipeline: pipeline, started_at: current - 60, finished_at: current }
- before do
- build.skip
- build2.skip
+ describe '#duration' do
+ before do
+ build.skip
+ build2.skip
+ end
+
+ it 'matches sum of builds duration' do
+ expect(pipeline.reload.duration).to eq(build.duration + build2.duration)
+ end
end
- it 'matches sum of builds duration' do
- expect(pipeline.reload.duration).to eq(build.duration + build2.duration)
+ describe '#started_at' do
+ it 'updates on transitioning to running' do
+ build.run
+
+ expect(pipeline.reload.started_at).not_to be_nil
+ end
+
+ it 'do not update on transitioning to success' do
+ build.success
+
+ expect(pipeline.reload.started_at).to be_nil
+ end
+ end
+
+ describe '#finished_at' do
+ it 'updates on transitioning to success' do
+ build.success
+
+ expect(pipeline.reload.finished_at).not_to be_nil
+ end
+
+ it 'do not update on transitioning to running' do
+ build.run
+
+ expect(pipeline.reload.finished_at).to be_nil
+ end
end
end