diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-12-19 16:03:54 +0300 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-12-19 16:03:54 +0300 |
commit | f9fd9b1def8dec9800f8d3857ee278ed6dca03c3 (patch) | |
tree | 2cbb53d5c73df8dab9e7baf3d7f65230bab06858 /spec/workers | |
parent | fd86e7432744979c0f17fc0dcca157a6606a15c0 (diff) | |
parent | 752e9c18a1c2521636ddeec65b7bda2035ce1893 (diff) |
Merge branch 'zj-pool-destruction' into 'master'
Leave object pools when destroying projects
Closes gitaly#1415
See merge request gitlab-org/gitlab-ce!23869
Diffstat (limited to 'spec/workers')
-rw-r--r-- | spec/workers/object_pool/destroy_worker_spec.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/workers/object_pool/destroy_worker_spec.rb b/spec/workers/object_pool/destroy_worker_spec.rb new file mode 100644 index 00000000000..ef74f0ba87c --- /dev/null +++ b/spec/workers/object_pool/destroy_worker_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +describe ObjectPool::DestroyWorker do + describe '#perform' do + context 'when no pool is in the database' do + it "doesn't raise an error" do + expect do + described_class.new.perform(987654321) + end.not_to raise_error + end + end + + context 'when a pool is present' do + let(:pool) { create(:pool_repository, :obsolete) } + + subject { described_class.new } + + it 'requests Gitaly to remove the object pool' do + expect(Gitlab::GitalyClient).to receive(:call).with(pool.shard_name, :object_pool_service, :delete_object_pool, Object) + + subject.perform(pool.id) + end + + it 'destroys the pool' do + subject.perform(pool.id) + + expect(PoolRepository.find_by_id(pool.id)).to be_nil + end + end + end +end |