diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-10-31 15:00:30 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-10-31 15:00:30 +0000 |
commit | 1ff00cb2dd168d98b0d4f4995216ed909dae9349 (patch) | |
tree | e25fe417a3a01e0bd73145475869a73e25c8a062 /spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb | |
parent | decf0fefe17a574782d47504920b9a2cfc7b14dc (diff) | |
parent | 490776517c394ced2780159fa3800e2accc27601 (diff) | |
download | gitlab-ce-1ff00cb2dd168d98b0d4f4995216ed909dae9349.tar.gz |
Merge branch 'master' into 'add-retry-limit-project-webhook'add-retry-limit-project-webhook
# Conflicts:
# app/workers/project_web_hook_worker.rb
Diffstat (limited to 'spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb')
-rw-r--r-- | spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb b/spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb new file mode 100644 index 00000000000..6d42946de38 --- /dev/null +++ b/spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb @@ -0,0 +1,55 @@ +require 'spec_helper' + +describe RemoveUnreferencedLfsObjectsWorker do + let(:worker) { RemoveUnreferencedLfsObjectsWorker.new } + + describe '#perform' do + let!(:unreferenced_lfs_object1) { create(:lfs_object, oid: '1') } + let!(:unreferenced_lfs_object2) { create(:lfs_object, oid: '2') } + let!(:project1) { create(:empty_project, lfs_enabled: true) } + let!(:project2) { create(:empty_project, lfs_enabled: true) } + let!(:referenced_lfs_object1) { create(:lfs_object, oid: '3') } + let!(:referenced_lfs_object2) { create(:lfs_object, oid: '4') } + let!(:lfs_objects_project1_1) do + create(:lfs_objects_project, + project: project1, + lfs_object: referenced_lfs_object1 + ) + end + let!(:lfs_objects_project2_1) do + create(:lfs_objects_project, + project: project2, + lfs_object: referenced_lfs_object1 + ) + end + let!(:lfs_objects_project1_2) do + create(:lfs_objects_project, + project: project1, + lfs_object: referenced_lfs_object2 + ) + end + + it 'removes unreferenced lfs objects' do + worker.perform + + expect(LfsObject.where(id: unreferenced_lfs_object1.id)).to be_empty + expect(LfsObject.where(id: unreferenced_lfs_object2.id)).to be_empty + end + + it 'leaves referenced lfs objects' do + worker.perform + + expect(referenced_lfs_object1.reload).to be_present + expect(referenced_lfs_object2.reload).to be_present + end + + it 'removes unreferenced lfs objects after project removal' do + project1.destroy + + worker.perform + + expect(referenced_lfs_object1.reload).to be_present + expect(LfsObject.where(id: referenced_lfs_object2.id)).to be_empty + end + end +end |