From 861f7359b1833b210465d3e543ebd445e9213ff3 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Thu, 12 Sep 2024 17:08:20 +0200 Subject: [PATCH] feat(attestation): support last champ updated at as tag closes #9825 --- .../concerns/tags_substitution_concern.rb | 7 +++++++ .../concerns/tags_substitution_concern_spec.rb | 18 ++++++++++++++---- spec/models/export_template_spec.rb | 18 ++++++++++++------ 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/app/models/concerns/tags_substitution_concern.rb b/app/models/concerns/tags_substitution_concern.rb index 607029d12..3648aab2d 100644 --- a/app/models/concerns/tags_substitution_concern.rb +++ b/app/models/concerns/tags_substitution_concern.rb @@ -102,6 +102,13 @@ module TagsSubstitutionConcern lambda: -> (d) { format_date(d.processed_at) }, available_for_states: Dossier::TERMINE }, + { + id: 'dossier_last_champ_updated_at', + libelle: 'date de mise à jour', + description: 'Date de dernière mise à jour d’un champ du dossier', + lambda: -> (d) { format_date(d.last_champ_updated_at) }, + available_for_states: Dossier::SOUMIS + }, { id: 'dossier_procedure_libelle', libelle: 'libellé démarche', diff --git a/spec/models/concerns/tags_substitution_concern_spec.rb b/spec/models/concerns/tags_substitution_concern_spec.rb index 5b5db6a0e..e0c67b1a2 100644 --- a/spec/models/concerns/tags_substitution_concern_spec.rb +++ b/spec/models/concerns/tags_substitution_concern_spec.rb @@ -375,13 +375,17 @@ describe TagsSubstitutionConcern, type: :model do context "when using a date tag" do before do - Timecop.freeze(Time.zone.local(2001, 2, 3)) + travel_to Time.zone.local(2001, 2, 3) dossier.passer_en_construction! - Timecop.freeze(Time.zone.local(2004, 5, 6)) + + travel_to Time.zone.local(2003, 1, 3) + dossier.touch(:last_champ_updated_at) + + travel_to Time.zone.local(2004, 5, 6) dossier.passer_en_instruction!(instructeur: instructeur) - Timecop.freeze(Time.zone.local(2007, 8, 9)) + + travel_to Time.zone.local(2007, 8, 9) dossier.accepter!(instructeur: instructeur) - Timecop.return end context "with date de dépôt" do @@ -401,6 +405,12 @@ describe TagsSubstitutionConcern, type: :model do it { is_expected.to eq('09/08/2007') } end + + context "with date last ,champ updated at" do + let(:template) { '--date de mise à jour--' } + + it { is_expected.to eq('03/01/2003') } + end end context "when the template has a libellé démarche tag" do diff --git a/spec/models/export_template_spec.rb b/spec/models/export_template_spec.rb index d8619118d..8ef3e3c04 100644 --- a/spec/models/export_template_spec.rb +++ b/spec/models/export_template_spec.rb @@ -67,24 +67,30 @@ describe ExportTemplate do context 'for entreprise procedure' do let(:for_individual) { false } let(:expected_tags) do - ['entreprise_siren', 'entreprise_numero_tva_intracommunautaire', 'entreprise_siret_siege_social', 'entreprise_raison_sociale', 'entreprise_adresse', 'dossier_depose_at', 'dossier_procedure_libelle', 'dossier_service_name', 'dossier_number', 'dossier_groupe_instructeur'] + [ + 'entreprise_siren', 'entreprise_numero_tva_intracommunautaire', 'entreprise_siret_siege_social', 'entreprise_raison_sociale', 'entreprise_adresse', + 'dossier_depose_at', 'dossier_procedure_libelle', 'dossier_service_name', 'dossier_number', 'dossier_groupe_instructeur', 'dossier_last_champ_updated_at' + ] end it do - expect(export_template.tags.map { _1[:id] }).to eq(expected_tags) - expect(export_template.pj_tags.map { _1[:id] }).to eq(expected_tags + ['original-filename']) + expect(export_template.tags.map { _1[:id] }).to match_array(expected_tags) + expect(export_template.pj_tags.map { _1[:id] }).to match_array(expected_tags + ['original-filename']) end end context 'for individual procedure' do let(:for_individual) { true } let(:expected_tags) do - ['individual_gender', 'individual_last_name', 'individual_first_name', 'dossier_depose_at', 'dossier_procedure_libelle', 'dossier_service_name', 'dossier_number', 'dossier_groupe_instructeur'] + [ + 'individual_gender', 'individual_last_name', 'individual_first_name', + 'dossier_depose_at', 'dossier_procedure_libelle', 'dossier_service_name', 'dossier_number', 'dossier_groupe_instructeur', 'dossier_last_champ_updated_at' + ] end it do - expect(export_template.tags.map { _1[:id] }).to eq(expected_tags) - expect(export_template.pj_tags.map { _1[:id] }).to eq(expected_tags + ['original-filename']) + expect(export_template.tags.map { _1[:id] }).to match_array(expected_tags) + expect(export_template.pj_tags.map { _1[:id] }).to match_array(expected_tags + ['original-filename']) end end end