Files
feadulta/tools/e2e/shot_search.cjs
rafa e2f23ace9f feat(#8): buscador avanzado nativo (FULLTEXT + filtros)
Replica el «Buscador avanzado» del Joomla viejo sin servicios externos:
- fea-search-fulltext.php: motor MySQL FULLTEXT (MATCH AGAINST, Boolean Mode,
  orden por relevancia); comprueba que existe el índice fea_ft y degrada al
  buscador nativo si no, sin romper.
- fea-search-advanced.php: formulario con filtros por autor, categoría
  (lista curada de secciones), cita bíblica (meta _cita_evangelio por prefijo)
  y rango de fechas; pre_get_posts, chips de filtros, byline en tarjetas,
  i18n es/en/fr/it/pt. Excluye pseudo-autores «Testamento».
- create_buscar_page.php: crea la página /buscar + traducciones (idempotente).
- tools/e2e: suite Playwright de verificación.

Desplegado y verificado en prod (índice fea_ft + página /buscar + traducciones).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 18:24:53 -04:00

20 lines
1.0 KiB
JavaScript

const { chromium } = require('playwright');
(async () => {
const b = await chromium.launch();
// Desktop: cabecera con barra
let p = await b.newPage({ viewport: { width: 1280, height: 900 } });
await p.goto('http://localhost:8081/', { waitUntil: 'networkidle' });
const bar = await p.$('.fea-search-bar');
console.log('barra presente desktop:', !!bar);
await p.screenshot({ path: '/tmp/claude-1000/search_desktop.png', clip: {x:0,y:0,width:1280,height:320} });
// Móvil
let m = await b.newPage({ viewport: { width: 390, height: 800 } });
await m.goto('http://localhost:8081/', { waitUntil: 'networkidle' });
await m.screenshot({ path: '/tmp/claude-1000/search_mobile.png', clip: {x:0,y:0,width:390,height:360} });
// Resultados
let r = await b.newPage({ viewport: { width: 1280, height: 1000 } });
await r.goto('http://localhost:8081/?s=oraci%C3%B3n', { waitUntil: 'networkidle' });
await r.screenshot({ path: '/tmp/claude-1000/search_results.png', clip: {x:0,y:0,width:1280,height:700} });
await b.close();
})();