77 lines
2.2 KiB
Ruby
77 lines
2.2 KiB
Ruby
|
RSpec.describe RecoveryService, type: :service do
|
||
|
describe '.recoverable_procedures' do
|
||
|
subject { described_class.recoverable_procedures(previous_user:, siret:) }
|
||
|
|
||
|
context 'when the previous_user is nil' do
|
||
|
let(:previous_user) { nil }
|
||
|
let(:siret) { '123' }
|
||
|
|
||
|
it 'returns []' do
|
||
|
expect(subject).to eq([])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when the previous_user has some dossiers' do
|
||
|
let(:previous_user) { create(:user) }
|
||
|
|
||
|
let(:procedure_1) { create(:procedure) }
|
||
|
let(:siret) { '123' }
|
||
|
|
||
|
let(:procedure_2) { create(:procedure) }
|
||
|
let(:another_siret) { 'another_123' }
|
||
|
|
||
|
before do
|
||
|
3.times do
|
||
|
create(:dossier, procedure: procedure_1,
|
||
|
etablissement: create(:etablissement, siret:),
|
||
|
user: previous_user)
|
||
|
end
|
||
|
|
||
|
create(:dossier, procedure: procedure_2,
|
||
|
etablissement: create(:etablissement, siret: another_siret),
|
||
|
user: previous_user)
|
||
|
end
|
||
|
|
||
|
it 'returns the procedures with their count' do
|
||
|
expect(subject).to eq([{ procedure_id: procedure_1.id, libelle: procedure_1.libelle, count: 3 }])
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '.recover_procedure!' do
|
||
|
subject { described_class.recover_procedure!(previous_user:, next_user:, siret:, procedure_ids:) }
|
||
|
|
||
|
context 'when the previous_user has some dossiers' do
|
||
|
let!(:previous_user) { create(:user) }
|
||
|
let!(:next_user) { create(:user) }
|
||
|
|
||
|
let!(:procedure_1) { create(:procedure) }
|
||
|
let!(:siret) { '123' }
|
||
|
|
||
|
let!(:procedure_2) { create(:procedure) }
|
||
|
let!(:another_siret) { 'another_123' }
|
||
|
|
||
|
let!(:dossiers_to_recover) do
|
||
|
3.times do
|
||
|
create(:dossier, procedure: procedure_1,
|
||
|
etablissement: create(:etablissement, siret:),
|
||
|
user: previous_user)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
let!(:dossiers_not_to_recover) do
|
||
|
create(:dossier, procedure: procedure_2,
|
||
|
etablissement: create(:etablissement, siret: another_siret),
|
||
|
user: previous_user)
|
||
|
end
|
||
|
|
||
|
let(:procedure_ids) { [procedure_1.id] }
|
||
|
|
||
|
it 'moves the files to the next user' do
|
||
|
subject
|
||
|
expect(next_user.dossiers.count).to eq(3)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|