diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2018-07-04 11:04:58 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2018-07-04 11:04:58 +0000 |
commit | 14d2b52b00b49443146fbfc5c5b90de67fafa4e0 (patch) | |
tree | f9e6f7a1de90f131dffc4ed203c15c8a83c96e40 /spec/workers | |
parent | 935969be250435b482863e42684fdd7cef7d37c0 (diff) | |
download | gitlab-ce-14d2b52b00b49443146fbfc5c5b90de67fafa4e0.tar.gz |
Revert "Merge branch '44726-cancel_lease_upon_completion_in_project_cache_worker' into 'master'"
This reverts merge request !20103
Diffstat (limited to 'spec/workers')
-rw-r--r-- | spec/workers/project_cache_worker_spec.rb | 73 |
1 files changed, 31 insertions, 42 deletions
diff --git a/spec/workers/project_cache_worker_spec.rb b/spec/workers/project_cache_worker_spec.rb index 8c4daac5f80..b9b5445562f 100644 --- a/spec/workers/project_cache_worker_spec.rb +++ b/spec/workers/project_cache_worker_spec.rb @@ -9,50 +9,44 @@ describe ProjectCacheWorker do let(:lease_key) { "project_cache_worker:#{project.id}:update_statistics" } let(:lease_timeout) { ProjectCacheWorker::LEASE_TIMEOUT } - before do - stub_exclusive_lease(lease_key, timeout: lease_timeout) - - allow(Project).to receive(:find_by) - .with(id: project.id) - .and_return(project) - end - describe '#perform' do - context 'with a non-existing project' do - it 'does not update statistic' do - allow(Project).to receive(:find_by).with(id: -1).and_return(nil) + before do + stub_exclusive_lease(lease_key, timeout: lease_timeout) + end - expect(subject).not_to receive(:update_statistics) + context 'with a non-existing project' do + it 'does nothing' do + expect(worker).not_to receive(:update_statistics) - subject.perform(-1) + worker.perform(-1) end end context 'with an existing project without a repository' do - it 'does not update statistics' do - allow(project.repository).to receive(:exists?).and_return(false) + it 'does nothing' do + allow_any_instance_of(Repository).to receive(:exists?).and_return(false) - expect(subject).not_to receive(:update_statistics) + expect(worker).not_to receive(:update_statistics) - subject.perform(project.id) + worker.perform(project.id) end end context 'with an existing project' do it 'updates the project statistics' do - expect(subject).to receive(:update_statistics) - .with(%w(repository_size)) - .and_call_original + expect(worker).to receive(:update_statistics) + .with(kind_of(Project), %i(repository_size)) + .and_call_original - subject.perform(project.id, [], %w(repository_size)) + worker.perform(project.id, [], %w(repository_size)) end it 'refreshes the method caches' do - expect(project.repository).to receive(:refresh_method_caches) - .with(%i(readme)) - .and_call_original + expect_any_instance_of(Repository).to receive(:refresh_method_caches) + .with(%i(readme)) + .and_call_original - subject.perform(project.id, %w(readme)) + worker.perform(project.id, %w(readme)) end context 'with plain readme' do @@ -60,22 +54,23 @@ describe ProjectCacheWorker do allow(MarkupHelper).to receive(:gitlab_markdown?).and_return(false) allow(MarkupHelper).to receive(:plain?).and_return(true) - expect(project.repository).to receive(:refresh_method_caches) - .with(%i(readme)) - .and_call_original - - subject.perform(project.id, %w(readme)) + expect_any_instance_of(Repository).to receive(:refresh_method_caches) + .with(%i(readme)) + .and_call_original + worker.perform(project.id, %w(readme)) end end end + end + describe '#update_statistics' do context 'when a lease could not be obtained' do it 'does not update the repository size' do stub_exclusive_lease_taken(lease_key, timeout: lease_timeout) - expect(project.statistics).not_to receive(:refresh!) + expect(statistics).not_to receive(:refresh!) - subject.perform(project.id, [], %w(repository_size)) + worker.update_statistics(project) end end @@ -83,17 +78,11 @@ describe ProjectCacheWorker do it 'updates the project statistics' do stub_exclusive_lease(lease_key, timeout: lease_timeout) - expect(project.statistics).to receive(:refresh!) - .with(only: %i(repository_size)) - .and_call_original - - subject.perform(project.id, [], %i(repository_size)) - end - - it 'cancels the lease after statistics has been updated' do - expect(subject).to receive(:release_lease).with('uuid') + expect(statistics).to receive(:refresh!) + .with(only: %i(repository_size)) + .and_call_original - subject.perform(project.id, [], %i(repository_size)) + worker.update_statistics(project, %i(repository_size)) end end end |