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) {