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
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-10-17 10:55:47 +0300
committerKamil Trzcinski <ayufan@ayufan.eu>2016-10-17 11:27:53 +0300
commita497803072edb4c8edbf9f4daf3832c122ee50e2 (patch)
tree2d0cf4e115f0e5f76015ff0ee1091f1788e4a519 /spec/workers/pipeline_metrics_worker_spec.rb
parent9c6c5c79f8d3a555ded0539e06a922bc058d5c20 (diff)
Improve spec for pipeline metrics worker
Diffstat (limited to 'spec/workers/pipeline_metrics_worker_spec.rb')
-rw-r--r--spec/workers/pipeline_metrics_worker_spec.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/workers/pipeline_metrics_worker_spec.rb b/spec/workers/pipeline_metrics_worker_spec.rb
new file mode 100644
index 00000000000..f58df3f0d6e
--- /dev/null
+++ b/spec/workers/pipeline_metrics_worker_spec.rb
@@ -0,0 +1,46 @@
+require 'spec_helper'
+
+describe PipelineMetricsWorker do
+ let(:project) { create(:project) }
+ let!(:merge_request) { create(:merge_request, source_project: project, source_branch: pipeline.ref) }
+
+ let(:pipeline) do
+ create(:ci_empty_pipeline,
+ status: status,
+ project: project,
+ ref: 'master',
+ sha: project.repository.commit('master').id,
+ started_at: 1.hour.ago,
+ finished_at: Time.now)
+ end
+
+ describe '#perform' do
+ subject { described_class.new.perform(pipeline.id) }
+
+ context 'when pipeline is running' do
+ let(:status) { 'running' }
+
+ it 'records the build start time' do
+ subject
+
+ expect(merge_request.reload.metrics.latest_build_started_at).to eq(pipeline.started_at)
+ end
+
+ it 'clears the build end time' do
+ subject
+
+ expect(merge_request.reload.metrics.latest_build_finished_at).to be_nil
+ end
+ end
+
+ context 'when pipeline succeeded' do
+ let(:status) { 'success' }
+
+ it 'records the build end time' do
+ subject
+
+ expect(merge_request.reload.metrics.latest_build_finished_at).to eq(pipeline.finished_at)
+ end
+ end
+ end
+end