diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-12-19 13:03:54 +0000 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-12-19 13:03:54 +0000 |
commit | f9fd9b1def8dec9800f8d3857ee278ed6dca03c3 (patch) | |
tree | 2cbb53d5c73df8dab9e7baf3d7f65230bab06858 /spec/models | |
parent | fd86e7432744979c0f17fc0dcca157a6606a15c0 (diff) | |
parent | 752e9c18a1c2521636ddeec65b7bda2035ce1893 (diff) | |
download | gitlab-ce-f9fd9b1def8dec9800f8d3857ee278ed6dca03c3.tar.gz |
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/models')
-rw-r--r-- | spec/models/pool_repository_spec.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/models/pool_repository_spec.rb b/spec/models/pool_repository_spec.rb index 3d3878b8c39..112d4ab56fc 100644 --- a/spec/models/pool_repository_spec.rb +++ b/spec/models/pool_repository_spec.rb @@ -23,4 +23,25 @@ describe PoolRepository do expect(pool.disk_path).to match(%r{\A@pools/\h{2}/\h{2}/\h{64}}) end end + + describe '#unlink_repository' do + let(:pool) { create(:pool_repository, :ready) } + + context 'when the last member leaves' do + it 'schedules pool removal' do + expect(::ObjectPool::DestroyWorker).to receive(:perform_async).with(pool.id).and_call_original + + pool.unlink_repository(pool.source_project.repository) + end + end + + context 'when the second member leaves' do + it 'does not schedule pool removal' do + create(:project, :repository, pool_repository: pool) + expect(::ObjectPool::DestroyWorker).not_to receive(:perform_async).with(pool.id) + + pool.unlink_repository(pool.source_project.repository) + end + end + end end |