From edf41eff3b861f3f762d7e15b5ed8393d6822d43 Mon Sep 17 00:00:00 2001 From: carolineBda Date: Tue, 10 Dec 2024 16:13:27 +0100 Subject: [PATCH 1/3] =?UTF-8?q?fix(references)=20:=20formatter=20toutes=20?= =?UTF-8?q?les=20references=20des=20fiches=20SP=20m=C3=AAme=20celles=20que?= =?UTF-8?q?=20l'ont=20ne=20trouve=20pas=20avec=20le=20resolver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/fiche-SP-with-external-ref.json | 2667 +++++++++++++++++ .../__tests__/{ => data}/ficheSP-mock.json | 0 .../{ => data}/formatted-raw-ficheSP.json | 0 .../__tests__/format.test.ts | 20 +- .../__tests__/parseReferences.test.ts | 5 +- .../fichesServicePublic/parseReference.ts | 2 +- 6 files changed, 2689 insertions(+), 5 deletions(-) create mode 100644 targets/ingester/src/transform/fichesServicePublic/__tests__/data/fiche-SP-with-external-ref.json rename targets/ingester/src/transform/fichesServicePublic/__tests__/{ => data}/ficheSP-mock.json (100%) rename targets/ingester/src/transform/fichesServicePublic/__tests__/{ => data}/formatted-raw-ficheSP.json (100%) diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/data/fiche-SP-with-external-ref.json b/targets/ingester/src/transform/fichesServicePublic/__tests__/data/fiche-SP-with-external-ref.json new file mode 100644 index 000000000..6ed5d895d --- /dev/null +++ b/targets/ingester/src/transform/fichesServicePublic/__tests__/data/fiche-SP-with-external-ref.json @@ -0,0 +1,2667 @@ +{ + "id": "F303", + "children": [ + { + "type": "element", + "name": "Publication", + "attributes": { + "xmlns:dc": "http://purl.org/dc/elements/1.1/", + "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", + "ID": "F303", + "type": "Fiche d'information conditionnée", + "xsi:noNamespaceSchemaLocation": "../Schemas/3.3/Publication.xsd", + "spUrl": "https://www.service-public.fr/particuliers/vosdroits/F303" + }, + "children": [ + { + "type": "element", + "name": "dc:title", + "children": [ + { + "type": "text", + "text": "Arrêt maladie : démarches à effectuer par le salarié" + } + ] + }, + { + "type": "element", + "name": "dc:creator", + "children": [ + { + "type": "text", + "text": "Direction de l'information légale et administrative" + } + ] + }, + { + "type": "element", + "name": "dc:subject", + "children": [ + { + "type": "text", + "text": "Travail - Formation" + } + ] + }, + { + "type": "element", + "name": "dc:description", + "children": [ + { + "type": "text", + "text": "Vous êtes tombé malade et vous avez un arrêt de travail pour maladie ? Nous vous présentons les démarches que vous devez accomplir vis-à-vis de votre employeur et vis-à-vis de la Sécurité sociale, que ce soit pour un 1^er arrêt malade ou si votre arrêt a été prolongé." + } + ] + }, + { + "type": "element", + "name": "dc:publisher", + "children": [ + { + "type": "text", + "text": "Direction de l'information légale et administrative" + } + ] + }, + { + "type": "element", + "name": "dc:contributor", + "children": [ + { + "type": "text", + "text": "Direction de l'information légale et administrative (Premier ministre)" + } + ] + }, + { + "type": "element", + "name": "dc:date", + "children": [ + { + "type": "text", + "text": "modified 2023-11-10" + } + ] + }, + { + "type": "element", + "name": "dc:type", + "children": [ + { + "type": "text", + "text": "Fiche pratique" + } + ] + }, + { + "type": "element", + "name": "dc:format", + "children": [ + { + "type": "text", + "text": "text/xml" + } + ] + }, + { + "type": "element", + "name": "dc:identifier", + "children": [ + { + "type": "text", + "text": "F303" + } + ] + }, + { + "type": "element", + "name": "dc:source", + "children": [ + { + "type": "text", + "text": "https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156085/, https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006172513/, https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156607/, https://www.legifrance.gouv.fr/codes/id/LEGISCTA000006155821/, https://www.legifrance.gouv.fr/codes/id/LEGISCTA000006173263/" + } + ] + }, + { + "type": "element", + "name": "dc:language", + "children": [ + { + "type": "text", + "text": "Fr" + } + ] + }, + { + "type": "element", + "name": "dc:relation", + "children": [ + { + "type": "text", + "text": "isPartOf N526" + } + ] + }, + { + "type": "element", + "name": "dc:coverage", + "children": [ + { + "type": "text", + "text": "France entière" + } + ] + }, + { + "type": "element", + "name": "dc:rights", + "children": [ + { + "type": "text", + "text": "https://www.service-public.fr/a-propos/mentions-legales" + } + ] + }, + { + "type": "element", + "name": "SurTitre", + "children": [ + { + "type": "text", + "text": "Fiche pratique" + } + ] + }, + { + "type": "element", + "name": "Audience", + "children": [ + { + "type": "text", + "text": "Particuliers" + } + ] + }, + { + "type": "element", + "name": "Canal", + "children": [ + { + "type": "text", + "text": "www.service-public.fr" + } + ] + }, + { + "type": "element", + "name": "FilDAriane", + "children": [ + { + "type": "element", + "name": "Niveau", + "attributes": { + "ID": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Accueil particuliers" + } + ] + }, + { + "type": "element", + "name": "Niveau", + "attributes": { + "ID": "N19806" + }, + "children": [ + { + "type": "text", + "text": "Travail - Formation" + } + ] + }, + { + "type": "element", + "name": "Niveau", + "attributes": { + "ID": "N526" + }, + "children": [ + { + "type": "text", + "text": "Maladie ou accident du travail dans le secteur privé" + } + ] + }, + { + "type": "element", + "name": "Niveau", + "attributes": { + "ID": "F303", + "type": "Fiche d'information conditionnée" + }, + "children": [ + { + "type": "text", + "text": "Arrêt maladie : démarches à effectuer par le salarié" + } + ] + } + ] + }, + { + "type": "element", + "name": "Theme", + "attributes": { + "ID": "N19806" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Travail - Formation" + } + ] + } + ] + }, + { + "type": "element", + "name": "SousThemePere", + "attributes": { + "ID": "N19965" + }, + "children": [ + { + "type": "text", + "text": "Santé, sécurité et conditions de travail" + } + ] + }, + { + "type": "element", + "name": "DossierPere", + "attributes": { + "ID": "N526" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Maladie ou accident du travail dans le secteur privé" + } + ] + }, + { + "type": "element", + "name": "SousDossier", + "attributes": { + "ID": "N526-1" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Arrêt maladie" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F303" + }, + "children": [ + { + "type": "text", + "text": "Démarches à effectuer" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F3053" + }, + "children": [ + { + "type": "text", + "text": "Indemnités journalières versées au salarié" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F144" + }, + "children": [ + { + "type": "text", + "text": "Reprise du travail" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F726" + }, + "children": [ + { + "type": "text", + "text": "Inaptitude du salarié" + } + ] + } + ] + }, + { + "type": "element", + "name": "SousDossier", + "attributes": { + "ID": "N526-2" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Accident du travail" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F171" + }, + "children": [ + { + "type": "text", + "text": "Démarches à effectuer" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F175" + }, + "children": [ + { + "type": "text", + "text": "Indemnités journalières pendant l'arrêt de travail" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F14840" + }, + "children": [ + { + "type": "text", + "text": "Indemnisation en cas d'incapacité permanente" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F32157" + }, + "children": [ + { + "type": "text", + "text": "Reprise du travail" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F15341" + }, + "children": [ + { + "type": "text", + "text": "Inaptitude du salarié" + } + ] + } + ] + }, + { + "type": "element", + "name": "SousDossier", + "attributes": { + "ID": "N526-3" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Maladie professionnelle" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F176" + }, + "children": [ + { + "type": "text", + "text": "Démarches à effectuer" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F32148" + }, + "children": [ + { + "type": "text", + "text": "Indemnités journalières pendant l'arrêt de travail" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F348" + }, + "children": [ + { + "type": "text", + "text": "Indemnisation en cas d'incapacité permanente" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F32158" + }, + "children": [ + { + "type": "text", + "text": "Reprise du travail" + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F32161" + }, + "children": [ + { + "type": "text", + "text": "Inaptitude du salarié" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "SousDossierPere", + "children": [ + { + "type": "text", + "text": "Arrêt maladie" + } + ] + }, + { + "type": "element", + "name": "Introduction", + "children": [ + { + "type": "element", + "name": "Texte", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Vous êtes tombé malade et vous avez un arrêt de travail pour maladie ? Nous vous présentons les démarches que vous devez accomplir vis-à-vis de votre employeur et vis-à-vis de la Sécurité sociale, que ce soit pour un 1" + }, + { + "type": "element", + "name": "Exposant", + "children": [ + { + "type": "text", + "text": "er" + } + ] + }, + { + "type": "text", + "text": " arrêt malade ou si votre arrêt a été prolongé." + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "ListeSituations", + "attributes": { + "affichage": "onglet" + }, + "children": [ + { + "type": "element", + "name": "Situation", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Arrêt initial" + } + ] + }, + { + "type": "element", + "name": "Texte", + "children": [ + { + "type": "element", + "name": "Chapitre", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Dans quel délai prévenir l'employeur quand on est malade ?" + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Lorsque votre état de santé ne vous permet pas de travailler pour cause de maladie, vous devez prévenir, " + }, + { + "type": "element", + "name": "MiseEnEvidence", + "children": [ + { + "type": "text", + "text": "sans délais" + } + ] + }, + { + "type": "text", + "text": ", votre employeur et ce, par tous moyens : soit par oral (téléphone), soit par écrit (mail, SMS,...)." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si votre " + }, + { + "type": "element", + "name": "LienIntra", + "attributes": { + "LienID": "R59273", + "type": "Définition de glossaire" + }, + "children": [ + { + "type": "text", + "text": "convention collective" + } + ] + }, + { + "type": "text", + "text": " ou accord d'entreprise ne fixe pas de délai, l'usage veut que cette information soit donnée à l'employeur " + }, + { + "type": "element", + "name": "MiseEnEvidence", + "children": [ + { + "type": "text", + "text": "dans les 48 heures" + } + ] + }, + { + "type": "text", + "text": " suivant le début de votre arrêt." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "element", + "name": "MiseEnEvidence" + }, + { + "type": "text", + "text": "Vous devez justifier cette information en adressant à votre employeur le feuillet n°3 du certificat médical établi par votre " + }, + { + "type": "element", + "name": "MiseEnEvidence", + "children": [ + { + "type": "text", + "text": "médecin traitant" + } + ] + }, + { + "type": "text", + "text": " précisant les dates et motifs de l'arrêt de travail." + } + ] + }, + { + "type": "element", + "name": "Attention", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Attention" + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "si vous travaillez pour plusieurs employeurs, et que le médecin a déterminé que vous n'avez pas le droit d'exercer vos activités. vous devez avertir chacun d'entre eux. Pour ce faire, vous devez envoyer des photocopies du volet 3." + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si vous ne respectez pas l'obligation d'information et de transmission vis-à-vis de votre employeur, vous risquez alors une" + }, + { + "type": "element", + "name": "MiseEnEvidence" + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "F133", + "type": "Fiche d'information conditionnée", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "sanction disciplinaire pouvant aller jusqu'au licenciement" + } + ] + }, + { + "type": "text", + "text": ". L'absence injustifiée peut constituer une cause réelle et sérieuse de licenciement." + } + ] + } + ] + }, + { + "type": "element", + "name": "Chapitre", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Dans quel délai prévenir l'organisme de Sécurité sociale quand on est malade ?" + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Vous avez un délai de " + }, + { + "type": "element", + "name": "MiseEnEvidence", + "children": [ + { + "type": "text", + "text": "48 heures" + } + ] + }, + { + "type": "text", + "text": " pour informer votre organisme de Sécurité sociale (" + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "R15469", + "type": "Sigle" + }, + "children": [ + { + "type": "text", + "text": "CPAM" + } + ] + }, + { + "type": "text", + "text": " ou " + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "R24583", + "type": "Sigle" + }, + "children": [ + { + "type": "text", + "text": "MSA" + } + ] + }, + { + "type": "text", + "text": ")." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "element", + "name": "MiseEnEvidence" + }, + { + "type": "text", + "text": "En principe, lorsque le médecin vous remet les 3 feuillets, vous devez envoyer les feuillets n°1 et n°2 à votre organisme de Sécurité sociale." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Cette démarche vous permet de percevoir des " + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "F3053", + "type": "Fiche d'information conditionnée", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "indemnités de la Sécurité sociale" + } + ] + }, + { + "type": "text", + "text": ", et si vous y avez droit, des indemnités de votre employeur." + } + ] + }, + { + "type": "element", + "name": "ANoter", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "À noter" + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Il est de plus en plus fréquent que le médecin vous remette uniquement le volet n°3 et qu'il télétransmette les volets 1 et 2 de l'arrêt de travail par internet à la caisse d’assurance maladie." + } + ] + } + ] + }, + { + "type": "element", + "name": "BlocCas", + "attributes": { + "affichage": "radio" + }, + "children": [ + { + "type": "element", + "name": "Cas", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Vous dépendez de la CPAM" + } + ] + }, + { + "type": "element", + "name": "OuSAdresser", + "attributes": { + "ID": "R40", + "sve": "non", + "type": "Local personnalisé sur SP" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Caisse primaire d'assurance maladie (CPAM)" + } + ] + }, + { + "type": "element", + "name": "PivotLocal", + "children": [ + { + "type": "text", + "text": "cpam" + } + ] + }, + { + "type": "element", + "name": "RessourceWeb", + "attributes": { + "URL": "https://www.ameli.fr/assure/adresses-et-contacts" + } + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30675" + }, + "children": [ + { + "type": "text", + "text": "Caisse nationale d'assurance maladie (Cnam)" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Cas", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Vous dépendez de la MSA" + } + ] + }, + { + "type": "element", + "name": "OuSAdresser", + "attributes": { + "ID": "R39", + "sve": "non", + "type": "Local personnalisé sur SP" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Mutualité sociale agricole (MSA)" + } + ] + }, + { + "type": "element", + "name": "PivotLocal", + "children": [ + { + "type": "text", + "text": "msa" + } + ] + }, + { + "type": "element", + "name": "RessourceWeb", + "attributes": { + "URL": "https://www.msa.fr/lfy/web/msa/contact/coordonnees-msa" + } + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30660" + }, + "children": [ + { + "type": "text", + "text": "Caisse centrale de la mutualité sociale agricole (MSA)" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si vous adressez l'arrêt hors délai, la CPAM ou la MSA vous informe du retard constaté et précise que vous risquez une retenue financière en cas de nouvel envoi tardif dans les 2 ans qui suivent." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Cette retenue est fixée à " + }, + { + "type": "element", + "name": "Valeur", + "children": [ + { + "type": "text", + "text": "50 %" + } + ] + }, + { + "type": "text", + "text": " du montant de vos indemnités journalières." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Elle s'applique uniquement pour la période comprise entre la date de prescription de l'arrêt et sa date d'envoi." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Toutefois, il n'y aura pas de retenue financière si vous justifiez d'une hospitalisation ou de l'impossibilité de transmettre l'arrêt dans les 2 jours." + } + ] + } + ] + }, + { + "type": "element", + "name": "Chapitre", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Quelles sont les obligations devant être respectées par le salarié pendant l'arrêt de travail ?" + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Durant l'arrêt de travail, vous devez respecter les obligations suivantes :" + } + ] + }, + { + "type": "element", + "name": "Liste", + "attributes": { + "type": "puce" + }, + "children": [ + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Suivre les prescriptions de votre médecin" + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Vous soumettre aux contrôles médicaux organisés par votre employeur et/ou la Sécurité sociale" + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Respecter l'interdiction de sortie ou les " + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "F12415", + "type": "Fiche Question-réponse conditionnée", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "heures de sorties autorisées" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "F18724", + "type": "Fiche Question-réponse conditionnée", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Vous abstenir de toute activité" + } + ] + }, + { + "type": "text", + "text": ", sauf autorisation de votre médecin traitant" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si vous ne respectez pas ces obligations, le versement des indemnités journalières est suspendu." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "De plus, si vous exercez une activité rémunérée non autorisée par votre médecin traitant, vous vous exposez à une sanction financière." + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Situation", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Prolongation" + } + ] + }, + { + "type": "element", + "name": "Texte", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "En principe, seul votre médecin traitant ou le médecin qui vous a prescrit votre arrêt de travail initial peut le prolonger. Toutefois, " + }, + { + "type": "element", + "name": "MiseEnEvidence", + "children": [ + { + "type": "text", + "text": "à titre exceptionnel" + } + ] + }, + { + "type": "text", + "text": ", la prolongation de votre arrêt de travail peut être autorisée s'il a été établi par l'une des personnes suivantes :" + } + ] + }, + { + "type": "element", + "name": "Liste", + "attributes": { + "type": "puce" + }, + "children": [ + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Remplaçant de votre médecin traitant" + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Remplaçant du médecin qui a prescrit votre arrêt de travail initial" + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Médecin spécialiste consulté à la demande du médecin traitant" + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Médecin qui vous suit durant une hospitalisation." + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Informer l'employeur" + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si votre arrêt initial est prolongé, vous devez tenir informé votre employeur de l'évolution de votre maladie. Vous devez lui transmettre les documents concernant votre éventuelle prolongation d'arrêt de travail." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "L'usage est de prévenir son employeur dans un délai de " + }, + { + "type": "element", + "name": "MiseEnEvidence", + "children": [ + { + "type": "text", + "text": "48 heures" + } + ] + }, + { + "type": "text", + "text": " suivant la prolongation. L'information peut être faite par tous moyens : soit par oral (téléphone par exemple), soit par écrit (mail, SMS,...)." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Transmettre l'arrêt" + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Vous devez transmettre les feuillets n°1 et n°2 du certificat de prolongation à la " + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "R15469", + "type": "Sigle" + }, + "children": [ + { + "type": "text", + "text": "CPAM" + } + ] + }, + { + "type": "text", + "text": " ou à la " + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "R24583", + "type": "Sigle" + }, + "children": [ + { + "type": "text", + "text": "MSA" + } + ] + }, + { + "type": "text", + "text": " et le feuillet n°3 à votre employeur." + } + ] + }, + { + "type": "element", + "name": "BlocCas", + "attributes": { + "affichage": "radio" + }, + "children": [ + { + "type": "element", + "name": "Cas", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Vous dépendez de la CPAM" + } + ] + }, + { + "type": "element", + "name": "OuSAdresser", + "attributes": { + "ID": "R40", + "sve": "non", + "type": "Local personnalisé sur SP" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Caisse primaire d'assurance maladie (CPAM)" + } + ] + }, + { + "type": "element", + "name": "PivotLocal", + "children": [ + { + "type": "text", + "text": "cpam" + } + ] + }, + { + "type": "element", + "name": "RessourceWeb", + "attributes": { + "URL": "https://www.ameli.fr/assure/adresses-et-contacts" + } + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30675" + }, + "children": [ + { + "type": "text", + "text": "Caisse nationale d'assurance maladie (Cnam)" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Cas", + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Vous dépendez de la MSA" + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Est-ce intéressant de renvoyer sur ce lien : Si vous adressez l'arrêt hors délai, la CPAM ou la MSA vous informe du retard constaté et précise que vous risquez une retenue financière en cas de nouvel envoi tardif dans les 2 ans qui suivent." + } + ] + }, + { + "type": "element", + "name": "OuSAdresser", + "attributes": { + "ID": "R39", + "sve": "non", + "type": "Local personnalisé sur SP" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Mutualité sociale agricole (MSA)" + } + ] + }, + { + "type": "element", + "name": "PivotLocal", + "children": [ + { + "type": "text", + "text": "msa" + } + ] + }, + { + "type": "element", + "name": "RessourceWeb", + "attributes": { + "URL": "https://www.msa.fr/lfy/web/msa/contact/coordonnees-msa" + } + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30660" + }, + "children": [ + { + "type": "text", + "text": "Caisse centrale de la mutualité sociale agricole (MSA)" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si vous ne respectez pas l'obligation d'information et de transmission vis-à-vis de votre employeur, vous risquez alors une" + }, + { + "type": "element", + "name": "MiseEnEvidence" + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "F133", + "type": "Fiche d'information conditionnée", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "sanction disciplinaire pouvant aller jusqu'au licenciement" + } + ] + }, + { + "type": "text", + "text": ". L'absence injustifiée peut constituer une cause réelle et sérieuse de licenciement." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si vous adressez l'arrêt hors délai, la CPAM ou la MSA vous informe du retard constaté et précise que vous risquez une retenue financière en cas de nouvel envoi tardif dans les 2 ans qui suivent." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Cette retenue est fixée à " + }, + { + "type": "element", + "name": "Valeur", + "children": [ + { + "type": "text", + "text": "50 %" + } + ] + }, + { + "type": "text", + "text": " du montant de vos indemnités journalières." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Elle s'applique uniquement pour la période comprise entre la date de prescription de l'arrêt et sa date d'envoi." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Toutefois, il n'y aura pas de retenue financière si vous justifiez d'une hospitalisation ou de l'impossibilité de transmettre l'arrêt dans les 2 jours." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Respecter plusieurs obligations" + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Durant l'arrêt de travail, vous devez respecter les obligations suivantes :" + } + ] + }, + { + "type": "element", + "name": "Liste", + "attributes": { + "type": "puce" + }, + "children": [ + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Suivre les prescriptions de votre médecin" + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Vous soumettre aux contrôles médicaux organisés par votre employeur et/ou la Sécurité sociale" + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Respecter l'interdiction de sortie ou les " + }, + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "F12415", + "type": "Fiche Question-réponse conditionnée", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "heures de sorties autorisées" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Item", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "element", + "name": "LienInterne", + "attributes": { + "LienPublication": "F18724", + "type": "Fiche Question-réponse conditionnée", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Vous abstenir de toute activité" + } + ] + }, + { + "type": "text", + "text": ", sauf autorisation de votre médecin traitant" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Si vous ne respectez pas ces obligations, le versement des indemnités journalières est suspendu." + } + ] + }, + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "De plus, si vous exercez une activité rémunérée non autorisée par votre médecin traitant, vous vous exposez à une sanction financière." + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "VoirAussi", + "attributes": { + "important": "non" + }, + "children": [ + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F176", + "audience": "Particuliers" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Maladie professionnelle : démarches à effectuer" + } + ] + }, + { + "type": "element", + "name": "Theme", + "attributes": { + "ID": "N19806" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Travail - Formation" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F171", + "audience": "Particuliers" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Accident du travail : démarches à effectuer" + } + ] + }, + { + "type": "element", + "name": "Theme", + "attributes": { + "ID": "N19806" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Travail - Formation" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "VoirAussi", + "attributes": { + "important": "non" + }, + "children": [ + { + "type": "element", + "name": "Fiche", + "attributes": { + "ID": "F3053", + "audience": "Particuliers" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Arrêt maladie : indemnités journalières versées au salarié" + } + ] + }, + { + "type": "element", + "name": "Theme", + "attributes": { + "ID": "N19806" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Travail - Formation" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "OuSAdresser", + "attributes": { + "ID": "R40", + "sve": "non", + "type": "Local personnalisé sur SP" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Caisse primaire d'assurance maladie (CPAM)" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Pour toute information sur votre indemnisation par la sécurité sociale ou sur les contrôles médicaux" + } + ] + }, + { + "type": "element", + "name": "PivotLocal", + "children": [ + { + "type": "text", + "text": "cpam" + } + ] + }, + { + "type": "element", + "name": "RessourceWeb", + "attributes": { + "URL": "https://www.ameli.fr/assure/adresses-et-contacts" + } + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30675" + }, + "children": [ + { + "type": "text", + "text": "Caisse nationale d'assurance maladie (Cnam)" + } + ] + } + ] + }, + { + "type": "element", + "name": "OuSAdresser", + "attributes": { + "ID": "R39", + "sve": "non", + "type": "Local personnalisé sur SP" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Mutualité sociale agricole (MSA)" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Si vous relevez du régime agricole" + } + ] + }, + { + "type": "element", + "name": "PivotLocal", + "children": [ + { + "type": "text", + "text": "msa" + } + ] + }, + { + "type": "element", + "name": "RessourceWeb", + "attributes": { + "URL": "https://www.msa.fr/lfy/web/msa/contact/coordonnees-msa" + } + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30660" + }, + "children": [ + { + "type": "text", + "text": "Caisse centrale de la mutualité sociale agricole (MSA)" + } + ] + } + ] + }, + { + "type": "element", + "name": "OuSAdresser", + "attributes": { + "ID": "R17898", + "sve": "non", + "type": "Local" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Médecin" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Pour toute information concernant votre arrêt de travail ou sa prolongation" + } + ] + }, + { + "type": "element", + "name": "RessourceWeb", + "attributes": { + "URL": "http://annuairesante.ameli.fr/" + } + } + ] + }, + { + "type": "element", + "name": "Reference", + "attributes": { + "type": "Texte de référence", + "URL": "https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156085/", + "ID": "R35410" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Code de la sécurité sociale : articles L323-1 à L323-7" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Obligations du salarié : article L323-6" + } + ] + } + ] + }, + { + "type": "element", + "name": "Reference", + "attributes": { + "type": "Texte de référence", + "URL": "https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006172513/", + "ID": "R32923" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Code de la sécurité sociale : articles L162-2 à L162-4-5" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Prolongation de l'arrêt (conditions pour le maintien de l'indemnisation) : article L162-4-4" + } + ] + } + ] + }, + { + "type": "element", + "name": "Reference", + "attributes": { + "type": "Texte de référence", + "URL": "https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156607/", + "ID": "R33347" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Code de la sécurité sociale : articles R321-2 à R321-6" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Arrêt initial et prolongation (procédure à respecter) : article R321-2" + } + ] + } + ] + }, + { + "type": "element", + "name": "Reference", + "attributes": { + "type": "Texte de référence", + "URL": "https://www.legifrance.gouv.fr/codes/id/LEGISCTA000006155821/", + "ID": "R32509" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Code de la sécurité sociale : article D323-1 à D323-5" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Envoi de l'arrêt de travail hors délai : article D323-2" + } + ] + } + ] + }, + { + "type": "element", + "name": "Reference", + "attributes": { + "type": "Texte de référence", + "URL": "https://www.legifrance.gouv.fr/codes/id/LEGISCTA000006173263/", + "ID": "R37164" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Code de la sécurité sociale : articles R162-1-7 à R162-1-15" + } + ] + }, + { + "type": "element", + "name": "Complement", + "children": [ + { + "type": "text", + "text": "Prolongation de l'arrêt (conditions pour le maintien de l'indemnisation) : article R162-1-9-1" + } + ] + } + ] + }, + { + "type": "element", + "name": "ServiceEnLigne", + "attributes": { + "ID": "R1458", + "URL": "https://www.assurance-maladie.ameli.fr/sites/default/files/formulaires/S3116i.pdf", + "format": "application/pdf", + "poids": "332.9 KB", + "numerocerfa": "10170*07", + "type": "Formulaire" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Avis d'arrêt de travail" + } + ] + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30675" + }, + "children": [ + { + "type": "text", + "text": "Caisse nationale d'assurance maladie (Cnam)" + } + ] + } + ] + }, + { + "type": "element", + "name": "PourEnSavoirPlus", + "attributes": { + "type": "Information pratique", + "ID": "R1138", + "URL": "https://www.ameli.fr/entreprise/vos-salaries/arret-de-travail", + "audience": "Particuliers" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Attestation de salaire" + } + ] + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30675" + }, + "children": [ + { + "type": "text", + "text": "Caisse nationale d'assurance maladie (Cnam)" + } + ] + } + ] + }, + { + "type": "element", + "name": "PourEnSavoirPlus", + "attributes": { + "type": "Information pratique", + "ID": "R54801", + "URL": "https://www.ameli.fr/entreprise/vos-salaries/arret-de-travail/formalites-employeur/formalites-employeur", + "audience": "Particuliers" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Démarches de l'employeur en cas d'arrêt de travail" + } + ] + }, + { + "type": "element", + "name": "Source", + "attributes": { + "ID": "R30675" + }, + "children": [ + { + "type": "text", + "text": "Caisse nationale d'assurance maladie (Cnam)" + } + ] + } + ] + }, + { + "type": "element", + "name": "Definition", + "attributes": { + "ID": "R59273" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "Convention collective" + } + ] + }, + { + "type": "element", + "name": "Texte", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Accord écrit négocié entre les représentants syndicaux de salariés et des groupements d'employeurs. Il complète et adapte la législation du travail dans un secteur d'activité donné, souvent de façon plus favorable pour les salariés." + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Abreviation", + "attributes": { + "ID": "R15469", + "type": "Sigle" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "CPAM" + } + ] + }, + { + "type": "element", + "name": "Texte", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Caisse primaire d'assurance maladie" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "Abreviation", + "attributes": { + "ID": "R24583", + "type": "Sigle" + }, + "children": [ + { + "type": "element", + "name": "Titre", + "children": [ + { + "type": "text", + "text": "MSA" + } + ] + }, + { + "type": "element", + "name": "Texte", + "children": [ + { + "type": "element", + "name": "Paragraphe", + "children": [ + { + "type": "text", + "text": "Mutualité sociale agricole" + } + ] + } + ] + } + ] + }, + { + "type": "element", + "name": "QuestionReponse", + "attributes": { + "ID": "F18724", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Un salarié peut-il travailler pendant un arrêt de travail ?" + } + ] + }, + { + "type": "element", + "name": "QuestionReponse", + "attributes": { + "ID": "F12415", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Un salarié en arrêt maladie peut-il sortir de son domicile ?" + } + ] + }, + { + "type": "element", + "name": "QuestionReponse", + "attributes": { + "ID": "F12734", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "L'employeur peut-il exiger un justificatif du salarié pour une journée d'absence ?" + } + ] + }, + { + "type": "element", + "name": "QuestionReponse", + "attributes": { + "ID": "F19300", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Un salarié en arrêt de travail peut-il suivre une formation ?" + } + ] + }, + { + "type": "element", + "name": "QuestionReponse", + "attributes": { + "ID": "F21050", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Quels sont les droits du salarié dont le contrat de travail est suspendu ?" + } + ] + }, + { + "type": "element", + "name": "QuestionReponse", + "attributes": { + "ID": "F2614", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Arrêt maladie pendant le préavis : quelles conséquences ?" + } + ] + }, + { + "type": "element", + "name": "QuestionReponse", + "attributes": { + "ID": "F317", + "audience": "Particuliers" + }, + "children": [ + { + "type": "text", + "text": "Arrêt maladie pendant la période d'essai : quelles sont les règles ?" + } + ] + } + ] + } + ] +} diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/ficheSP-mock.json b/targets/ingester/src/transform/fichesServicePublic/__tests__/data/ficheSP-mock.json similarity index 100% rename from targets/ingester/src/transform/fichesServicePublic/__tests__/ficheSP-mock.json rename to targets/ingester/src/transform/fichesServicePublic/__tests__/data/ficheSP-mock.json diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/formatted-raw-ficheSP.json b/targets/ingester/src/transform/fichesServicePublic/__tests__/data/formatted-raw-ficheSP.json similarity index 100% rename from targets/ingester/src/transform/fichesServicePublic/__tests__/formatted-raw-ficheSP.json rename to targets/ingester/src/transform/fichesServicePublic/__tests__/data/formatted-raw-ficheSP.json diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts b/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts index 7d487de5c..dc66d1cbb 100644 --- a/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts +++ b/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts @@ -1,8 +1,9 @@ import { describe, expect, test } from "@jest/globals"; import { ShortAgreement } from "../fetchAgreementsWithKaliId"; import { format } from "../format"; -import fiche from "./ficheSP-mock.json"; -import expected from "./formatted-raw-ficheSP.json"; +import fiche from "./data/ficheSP-mock.json"; +import ficheWithRef from "./data/fiche-SP-with-external-ref.json"; +import expected from "./data/formatted-raw-ficheSP.json"; import { referenceResolverMock } from "./parseReferences.test"; const agreements: ShortAgreement[] = [ @@ -33,4 +34,19 @@ describe("format", () => { const raw = JSON.parse(formatted.raw); expect(raw).toEqual(expected); }); + + test("format bien toutes les references", () => { + const formatted = format( + ficheWithRef as any, + referenceResolverMock, + agreements, + ); + + expect(formatted.referencedTexts.length).toEqual(5); + expect(formatted.referencedTexts[0]).toEqual({ + title: "Code de la sécurité sociale : articles L323-1 à L323-7", + type: "external", + url: "https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156085/", + }); + }); }); diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/parseReferences.test.ts b/targets/ingester/src/transform/fichesServicePublic/__tests__/parseReferences.test.ts index 7378dbdb1..577fb06d8 100644 --- a/targets/ingester/src/transform/fichesServicePublic/__tests__/parseReferences.test.ts +++ b/targets/ingester/src/transform/fichesServicePublic/__tests__/parseReferences.test.ts @@ -48,6 +48,7 @@ export const referenceResolverMock = jest.fn().mockImplementation((id) => { type: "article", }, ]; + return []; }); @@ -93,7 +94,7 @@ describe("extractNewReference", () => { expect( extractNewReference(referenceResolverMock, agreements, url, label), ).toEqual(reference); - } + }, ); }); @@ -131,6 +132,6 @@ describe("extractOldReference", () => { expect( extractOldReference(referenceResolverMock, agreements, url, label), ).toEqual(reference); - } + }, ); }); diff --git a/targets/ingester/src/transform/fichesServicePublic/parseReference.ts b/targets/ingester/src/transform/fichesServicePublic/parseReference.ts index 3fcd473a1..54f8ca2cd 100644 --- a/targets/ingester/src/transform/fichesServicePublic/parseReference.ts +++ b/targets/ingester/src/transform/fichesServicePublic/parseReference.ts @@ -226,7 +226,7 @@ export function extractNewReference( ) as CodeSection[]; if (!section) { - return []; + return [externalReference(url, label)]; } if (section.children.every((child) => child.type !== "article")) { return [externalReference(url, label)]; From 7c86b0448223d7f5d0a72cb8070dbcb5a3dda4dc Mon Sep 17 00:00:00 2001 From: carolineBda Date: Tue, 10 Dec 2024 16:26:38 +0100 Subject: [PATCH 2/3] fix test --- .../src/transform/fichesServicePublic/__tests__/format.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts b/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts index dc66d1cbb..9044019ca 100644 --- a/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts +++ b/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts @@ -22,7 +22,7 @@ describe("format", () => { "Le contrat d'apprentissage est un contrat de travail conclu entre un employeur et un salarié lui permettant de suivre une formation en alternance.", ); expect(formatted.id).toEqual("F2918"); - expect(formatted.referencedTexts.length).toEqual(4); + expect(formatted.referencedTexts.length).toEqual(34); expect(formatted.text).toMatch( /Le contrat d'apprentissage est un contrat de travail qui permet de suivre par alternance des périodes de formation/, ); From 8e8b50dd380562e88e7f8ec9f3cba05f7fb79f17 Mon Sep 17 00:00:00 2001 From: carolineBda Date: Tue, 10 Dec 2024 16:49:28 +0100 Subject: [PATCH 3/3] try to fix --- .../__tests__/{data => }/fiche-SP-with-external-ref.json | 0 .../__tests__/{data => }/ficheSP-mock.json | 0 .../transform/fichesServicePublic/__tests__/format.test.ts | 6 +++--- .../__tests__/{data => }/formatted-raw-ficheSP.json | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename targets/ingester/src/transform/fichesServicePublic/__tests__/{data => }/fiche-SP-with-external-ref.json (100%) rename targets/ingester/src/transform/fichesServicePublic/__tests__/{data => }/ficheSP-mock.json (100%) rename targets/ingester/src/transform/fichesServicePublic/__tests__/{data => }/formatted-raw-ficheSP.json (100%) diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/data/fiche-SP-with-external-ref.json b/targets/ingester/src/transform/fichesServicePublic/__tests__/fiche-SP-with-external-ref.json similarity index 100% rename from targets/ingester/src/transform/fichesServicePublic/__tests__/data/fiche-SP-with-external-ref.json rename to targets/ingester/src/transform/fichesServicePublic/__tests__/fiche-SP-with-external-ref.json diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/data/ficheSP-mock.json b/targets/ingester/src/transform/fichesServicePublic/__tests__/ficheSP-mock.json similarity index 100% rename from targets/ingester/src/transform/fichesServicePublic/__tests__/data/ficheSP-mock.json rename to targets/ingester/src/transform/fichesServicePublic/__tests__/ficheSP-mock.json diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts b/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts index 9044019ca..270df1677 100644 --- a/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts +++ b/targets/ingester/src/transform/fichesServicePublic/__tests__/format.test.ts @@ -1,9 +1,9 @@ import { describe, expect, test } from "@jest/globals"; import { ShortAgreement } from "../fetchAgreementsWithKaliId"; import { format } from "../format"; -import fiche from "./data/ficheSP-mock.json"; -import ficheWithRef from "./data/fiche-SP-with-external-ref.json"; -import expected from "./data/formatted-raw-ficheSP.json"; +import fiche from "./ficheSP-mock.json"; +import ficheWithRef from "./fiche-SP-with-external-ref.json"; +import expected from "./formatted-raw-ficheSP.json"; import { referenceResolverMock } from "./parseReferences.test"; const agreements: ShortAgreement[] = [ diff --git a/targets/ingester/src/transform/fichesServicePublic/__tests__/data/formatted-raw-ficheSP.json b/targets/ingester/src/transform/fichesServicePublic/__tests__/formatted-raw-ficheSP.json similarity index 100% rename from targets/ingester/src/transform/fichesServicePublic/__tests__/data/formatted-raw-ficheSP.json rename to targets/ingester/src/transform/fichesServicePublic/__tests__/formatted-raw-ficheSP.json