43 lines
1.6 KiB
Ruby
43 lines
1.6 KiB
Ruby
describe ProcedureSerializer do
|
||
describe '#attributes' do
|
||
subject { ProcedureSerializer.new(procedure).serializable_hash }
|
||
let(:procedure) { create(:procedure, :published) }
|
||
|
||
it {
|
||
is_expected.to include(link: "http://localhost:3000/commencer/#{procedure.path}")
|
||
is_expected.to include(state: "publiee")
|
||
}
|
||
end
|
||
|
||
context 'when a type PJ was cloned to a type champ PJ' do
|
||
let(:original_pj_id) { 3 }
|
||
let(:cloned_type_de_champ) do
|
||
build(:type_de_champ_piece_justificative,
|
||
libelle: "Vidéo de votre demande de subvention",
|
||
description: "Pour optimiser vos chances, soignez la chorégraphie et privilégiez le chant polyphonique.\r\nRécupérer le formulaire vierge pour mon dossier : https://www.dance-academy.gouv.fr",
|
||
old_pj: { stable_id: original_pj_id },
|
||
position: 0)
|
||
end
|
||
let(:procedure) { create(:procedure, :published, types_de_champ: [cloned_type_de_champ]) }
|
||
|
||
subject { ProcedureSerializer.new(procedure).serializable_hash }
|
||
|
||
it "is exposed as a legacy type PJ" do
|
||
is_expected.to include(
|
||
types_de_piece_justificative: [
|
||
{
|
||
"id" => original_pj_id,
|
||
"libelle" => cloned_type_de_champ.libelle,
|
||
"description" => 'Pour optimiser vos chances, soignez la chorégraphie et privilégiez le chant polyphonique.',
|
||
"lien_demarche" => 'https://www.dance-academy.gouv.fr',
|
||
"order_place" => cloned_type_de_champ.order_place
|
||
}
|
||
]
|
||
)
|
||
end
|
||
|
||
it "is not exposed as a type de champ" do
|
||
expect(subject[:types_de_champ]).to be_empty
|
||
end
|
||
end
|
||
end
|