From 802b553820a85cc04e82987bdacd396fbc17aab4 Mon Sep 17 00:00:00 2001 From: borjaperfra Date: Mon, 24 Aug 2026 12:47:28 +0200 Subject: [PATCH] =?UTF-8?q?fix(survey):=20el=20titular=20se=20le=C3=ADa=20?= =?UTF-8?q?"fromthe",=20sin=20espacio=20entre=20sus=20dos=20mitades?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Astro se come el espacio que hay entre una expresión y la etiqueta siguiente, así que el H1 salía con las dos mitades pegadas: "The answers from" + "the NaN builders" y "Las respuestas" + "de los builders de NaN". Va explícito con {' '}, como ya se hace en /projects. Queda un test sobre el marcado, porque es un fallo que no rompe nada: la página se sirve igual de bien, solo se lee mal. Co-Authored-By: Claude Opus 5 --- src/pages/_survey.astro | 5 ++++- src/tests/landing/surveyData.test.ts | 29 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/pages/_survey.astro b/src/pages/_survey.astro index 5c06722..db83e8e 100644 --- a/src/pages/_survey.astro +++ b/src/pages/_survey.astro @@ -65,7 +65,10 @@ const tt = useT(lang).survey;

{tt.kicker}

-

{tt.titleA} {tt.titleB}

+ {/* El espacio va explícito: Astro se come el que hay entre una + expresión y la etiqueta siguiente, y las dos líneas del + titular quedaban pegadas ("from" + "the NaN builders"). */} +

{tt.titleA}{' '}{tt.titleB}

{tt.lead}

{tt.stats.map((s) => ( diff --git a/src/tests/landing/surveyData.test.ts b/src/tests/landing/surveyData.test.ts index 09529ac..2f1689b 100644 --- a/src/tests/landing/surveyData.test.ts +++ b/src/tests/landing/surveyData.test.ts @@ -1,4 +1,7 @@ import { describe, expect, test } from 'vitest'; +import { readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { dirname, resolve } from 'node:path'; import encuesta from '../../data/encuesta.json'; import { loc, type Localized } from '../../lib/agenda'; import { useT } from '../../lib/i18n'; @@ -194,6 +197,32 @@ describe('nada de datos personales en toda la página', () => { }); }); +describe('el titular de la portada', () => { + const here = dirname(fileURLToPath(import.meta.url)); + const page = readFileSync(resolve(here, '../../pages/_survey.astro'), 'utf-8'); + const h1 = page.slice(page.indexOf('

'), page.indexOf('

')); + + /** + * Salió a producción con las dos mitades pegadas: "The answers from" y "the + * NaN builders" se leían como "fromthe". Astro se come el espacio que hay + * entre una expresión y la etiqueta siguiente, así que tiene que ir + * explícito, como en /projects. + */ + test('el espacio entre las dos mitades va explícito', () => { + expect(h1).toContain("{' '}"); + }); + + test('las dos mitades del titular existen en los dos idiomas y no traen espacios de más', () => { + for (const lang of LANGS) { + const s = useT(lang).survey; + for (const half of [s.titleA, s.titleB]) { + expect(half).toBe(half.trim()); + expect(half).not.toBe(''); + } + } + }); +}); + describe('el chrome de la página está en el diccionario', () => { test('las dos pestañas, la cabecera y el método existen en los dos idiomas', () => { for (const lang of LANGS) {