60 lines
2.1 KiB
Ruby
60 lines
2.1 KiB
Ruby
describe PiecesJustificativesService do
|
|
let(:procedure) { create(:procedure, :with_titre_identite) }
|
|
let(:dossier) { create(:dossier, procedure: procedure) }
|
|
let(:champ_identite) { dossier.champs.find { |c| c.type == 'Champs::TitreIdentiteChamp' } }
|
|
let(:bill_signature) do
|
|
bs = build(:bill_signature, :with_serialized, :with_signature)
|
|
bs.save(validate: false)
|
|
bs
|
|
end
|
|
|
|
before do
|
|
champ_identite
|
|
.piece_justificative_file
|
|
.attach(io: StringIO.new("toto"), filename: "toto.png", content_type: "image/png")
|
|
create(:dossier_operation_log, dossier: dossier, bill_signature: bill_signature)
|
|
end
|
|
|
|
describe '.liste_pieces_justificatives' do
|
|
subject { PiecesJustificativesService.liste_pieces_justificatives(dossier) }
|
|
|
|
it "doesn't return sensitive documents like titre_identite" do
|
|
expect(champ_identite.piece_justificative_file).to be_attached
|
|
expect(subject.any? { |piece| piece.name == 'piece_justificative_file' }).to be_falsy
|
|
end
|
|
|
|
it "doesn't return export pdf of the dossier" do
|
|
expect(subject.any? { |piece| piece.name == 'pdf_export_for_instructeur' }).to be_falsy
|
|
end
|
|
|
|
it "doesn't return operation logs of the dossier" do
|
|
expect(subject.any? { |piece| piece.name == 'serialized' }).to be_falsy
|
|
end
|
|
end
|
|
|
|
describe '.liste_documents' do
|
|
subject { PiecesJustificativesService.liste_documents(dossier, false) }
|
|
|
|
it "doesn't return sensitive documents like titre_identite" do
|
|
expect(champ_identite.piece_justificative_file).to be_attached
|
|
expect(subject.any? { |piece| piece.name == 'piece_justificative_file' }).to be_falsy
|
|
end
|
|
|
|
it "returns operation logs of the dossier" do
|
|
expect(subject.any? { |piece| piece.name == 'serialized' }).to be_truthy
|
|
end
|
|
end
|
|
|
|
describe '.generate_dossier_export' do
|
|
subject { PiecesJustificativesService.generate_dossier_export(dossier) }
|
|
it "generates pdf export for instructeur" do
|
|
subject
|
|
end
|
|
|
|
it "doesn't update dossier" do
|
|
before_export = Time.zone.now
|
|
subject
|
|
expect(dossier.updated_at).to be <= before_export
|
|
end
|
|
end
|
|
end
|