debian-mirror-gitlab/spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb

60 lines
1.7 KiB
Ruby
Raw Normal View History

2019-07-07 11:18:12 +05:30
# frozen_string_literal: true
2017-08-17 22:00:37 +05:30
require 'spec_helper'
2020-07-28 23:09:34 +05:30
RSpec.describe RemoveUnreferencedLfsObjectsWorker do
2017-08-17 22:00:37 +05:30
let(:worker) { described_class.new }
describe '#perform' do
let!(:unreferenced_lfs_object1) { create(:lfs_object, oid: '1') }
let!(:unreferenced_lfs_object2) { create(:lfs_object, oid: '2') }
2017-09-10 17:25:29 +05:30
let!(:project1) { create(:project, lfs_enabled: true) }
let!(:project2) { create(:project, lfs_enabled: true) }
2017-08-17 22:00:37 +05:30
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
2020-11-24 15:15:51 +05:30
)
2017-08-17 22:00:37 +05:30
end
2020-10-24 23:57:45 +05:30
2017-08-17 22:00:37 +05:30
let!(:lfs_objects_project2_1) do
create(:lfs_objects_project,
project: project2,
lfs_object: referenced_lfs_object1
2020-11-24 15:15:51 +05:30
)
2017-08-17 22:00:37 +05:30
end
2020-10-24 23:57:45 +05:30
2017-08-17 22:00:37 +05:30
let!(:lfs_objects_project1_2) do
create(:lfs_objects_project,
project: project1,
lfs_object: referenced_lfs_object2
2020-11-24 15:15:51 +05:30
)
2017-08-17 22:00:37 +05:30
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
2020-10-24 23:57:45 +05:30
project1.destroy!
2017-08-17 22:00:37 +05:30
worker.perform
expect(referenced_lfs_object1.reload).to be_present
expect(LfsObject.where(id: referenced_lfs_object2.id)).to be_empty
end
end
end