diff options
author | Z.J. van de Weg <git@zjvandeweg.nl> | 2017-05-22 20:22:50 +0200 |
---|---|---|
committer | Z.J. van de Weg <git@zjvandeweg.nl> | 2017-05-22 22:07:11 +0200 |
commit | 336635f283eab06c561134f2147a3bd1983090e1 (patch) | |
tree | 60f38b54fdba9da80f2eeca5e02e1b112a6bdcc2 /spec/workers/expire_job_cache_worker_spec.rb | |
parent | da0c543e289ffc2be0b91b3257bab6f1d0d5dac3 (diff) | |
download | gitlab-ce-336635f283eab06c561134f2147a3bd1983090e1.tar.gz |
Test the ExpireJobCacheWorker and related changeszj-fix-pipeline-etag
These were untested by the cherry picked commit.
Diffstat (limited to 'spec/workers/expire_job_cache_worker_spec.rb')
-rw-r--r-- | spec/workers/expire_job_cache_worker_spec.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/workers/expire_job_cache_worker_spec.rb b/spec/workers/expire_job_cache_worker_spec.rb new file mode 100644 index 00000000000..1b614342a18 --- /dev/null +++ b/spec/workers/expire_job_cache_worker_spec.rb @@ -0,0 +1,31 @@ +require 'spec_helper' + +describe ExpireJobCacheWorker do + set(:pipeline) { create(:ci_empty_pipeline) } + let(:project) { pipeline.project } + subject { described_class.new } + + describe '#perform' do + context 'with a job in the pipeline' do + let(:job) { create(:ci_build, pipeline: pipeline) } + + it 'invalidates Etag caching for the job path' do + pipeline_path = "/#{project.full_path}/pipelines/#{pipeline.id}.json" + job_path = "/#{project.full_path}/builds/#{job.id}.json" + + expect_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch).with(pipeline_path) + expect_any_instance_of(Gitlab::EtagCaching::Store).to receive(:touch).with(job_path) + + subject.perform(job.id) + end + end + + context 'when there is no job in the pipeline' do + it 'does not change the etag store' do + expect(Gitlab::EtagCaching::Store).not_to receive(:new) + + subject.perform(9999) + end + end + end +end |