From 505ee03a807cc6400568a627ffb2f1888b896f70 Mon Sep 17 00:00:00 2001 From: Arthur L-Brjc Date: Thu, 5 Dec 2024 15:58:20 +0100 Subject: [PATCH] feat: remove empty paragraphs in actu --- fixtures/actualites.tsx | 2 +- package.json | 2 +- tests/utils/actualitesContext.test.tsx | 3 ++- utils/actualitesContext.tsx | 12 +++++++++++- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/fixtures/actualites.tsx b/fixtures/actualites.tsx index 60381d9f2..b69c63faa 100644 --- a/fixtures/actualites.tsx +++ b/fixtures/actualites.tsx @@ -46,7 +46,7 @@ export function uneActualiteRaw(): ActualitesRaw { titre: 'Invitation à la journée présentiel du 31 octobre 2024', etiquettes: [], contenu: - '

Rdv demain aux nouveaux locaux de la Fabrique

Vous êtes perdu ?', + '

Rdv demain aux nouveaux locaux de la Fabrique

Vous êtes perdu ?

', }, ], dateDerniereModification: '2024-10-30', diff --git a/package.json b/package.json index 9579d6fd6..47326c17d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pass-emploi-web", - "version": "5.1.1", + "version": "5.1.2", "private": true, "engines": { "node": "22.11.0" diff --git a/tests/utils/actualitesContext.test.tsx b/tests/utils/actualitesContext.test.tsx index c6b1ceeed..11c2c4bc7 100644 --- a/tests/utils/actualitesContext.test.tsx +++ b/tests/utils/actualitesContext.test.tsx @@ -23,9 +23,10 @@ describe('ActualitesProvdider', () => { ) }) - it('recupère les actualités et transforme les liens', () => { + it('recupère les actualités, transforme les liens et supprime les paragraphes vides', () => { // Then expect(getActualites).toHaveBeenCalledWith(conseiller.structure) + expect(screen.getAllByRole('paragraph')).toHaveLength(1) expect(screen.getByRole('paragraph')).toHaveTextContent( 'Rdv demain aux nouveaux locaux de la Fabrique' ) diff --git a/utils/actualitesContext.tsx b/utils/actualitesContext.tsx index 107362994..04a595826 100644 --- a/utils/actualitesContext.tsx +++ b/utils/actualitesContext.tsx @@ -38,7 +38,7 @@ export function ActualitesProvider({ articles: actualitesRaw.articles.map((article) => ({ ...article, titre: parse(article.titre), - contenu: parse(transformerLiensExternes(article.contenu)), + contenu: parse(nettoyerEtFormater(article.contenu)), })), } ) @@ -56,6 +56,16 @@ export function useActualites(): ActualitesParsees | undefined { return useContext(ActualitesContext) } +function nettoyerEtFormater(str: string): string { + let resultat = supprimerParagraphesVides(str) + resultat = transformerLiensExternes(resultat) + return resultat +} + +function supprimerParagraphesVides(str: string): string { + return str.replace(/(

\s*<\/p>)|()/g, '') +} + function transformerLiensExternes(str: string): string { const aTagRegex = /]*href=['"]([^'"]+)['"][^>]*>([\s\S]*?)<\/a>/g