SprilurTest Part Pública

Seleccionar tipus de guia mostra resultats al buscador

Editar
/

Test validat correctament

L'script s'ha executat i ha passat després de 0 iteracions de refinament.

La IA ajustarà l'script segons el teu feedback i el validarà automàticament.

Prompt

## PUB-11 Buscador: seleccionar tipus de guia mostra resultats Type: ui Scope: regression Depth: flow Area: frontend Category: happy path Entry point: /es/fichas/buscador Navigation: `/es/fichas/buscador` → al panell de filtres desktop (`aside`), clicar el `label` del radio "Urbanización" Preconditions: catàleg sembrat (CoreCatalogSeeder) amb el tipus de guia Urbanización i fitxes associades Verify in: secció de resultats del component `CardSearch`; query string de la URL Al buscador, clica l'etiqueta visible del radio de tipus de guia "Urbanización" (l'`input` és `sr-only`, `wire:model.live="selectedGuideType"`, `value="urbanization"`). Espera el round-trip de Livewire i comprova que la secció de resultats deixa l'estat buit i llista fitxes, i que la URL incorpora `?guide_type=urbanization`.

Pla de Test 2 pag · 8 passos · 0 validacions

Pàgines a visitar

/login Autenticació d'usuari
/es/fichas/buscador Cercador de fitxes amb filtres

Passos del test

Historial de validació 1 iteracions

#? FAIL

Passos del Test 3 steps

1

Iniciar sessió

stable (5x)
step3645-login-d-administrador

step3645 login d administrador

1. navigate Navegar a la pàgina de login
2. fill Omplir el camp d'email input[type="email"]
3. fill Omplir el camp de contrasenya input[type="password"]
4. click Clicar el botó de login button[type="submit"]
Generació inicial FAIL
#1 FAIL pas 2 · refine
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
locator.pressSequentially: Timeout 30000ms exceeded. Call log: - waiting for locator('input[type="email"]') [veure tot] locator.pressSequentially: Timeout 30000ms exceeded. Call log: - waiting for locator('input[type="email"]')
#2 FAIL pas 2 · refine
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
locator.pressSequentially: Timeout 30000ms exceeded. Call log: - waiting for locator('input[type="email"]') [veure tot] locator.pressSequentially: Timeout 30000ms exceeded. Call log: - waiting for locator('input[type="email"]')
#3 FAIL a[href="/dashboard"] · regenerate
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
page.click: Timeout 30000ms exceeded. Call log: - waiting for locator('a[href="/dashboard"]') [veure tot] page.click: Timeout 30000ms exceeded. Call log: - waiting for locator('a[href="/dashboard"]')
#4 FAIL a:has-text("Evaluar mis proyectos") · regenerate
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
page.click: Timeout 30000ms exceeded. Call log: - waiting for locator('a:has-text("Evaluar mis proyectos")') [veure tot] page.click: Timeout 30000ms exceeded. Call log: - waiting for locator('a:has-text("Evaluar mis proyectos")')
Prova 1 (03/06 11:41) FAIL Vídeo
#F1 FAIL a:has-text("Evaluar mis proyectos") · failed
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
page.click: Timeout 30000ms exceeded. Call log: - waiting for locator('a:has-text("Evaluar mis proyectos")') [veure tot] page.click: Timeout 30000ms exceeded. Call log: - waiting for locator('a:has-text("Evaluar mis proyectos")')
Prova 2 (03/06 11:49) FAIL Vídeo
#F1 FAIL input[type="email"] · failed
El selector coincideix amb més d'un element — cal afinar-lo perquè sigui únic.
locator.pressSequentially: Error: strict mode violation: locator('input[type="email"]') resolved to 2 elements: 1) <... [veure tot] locator.pressSequentially: Error: strict mode violation: locator('input[type="email"]') resolved to 2 elements: 1) <input value="" required="" name="email" type="email" autofocus="" id="login-email" autocomplete="email" class="h-12 w-full border border-zinc-300 bg-zinc-200 px-4 text-zinc-700 focus:border-zinc-500 focus:outline-none"/> aka locator('#login-email') 2) <input value="" required="" name="email" type="email" id="register-email" autocomplete="email" class="h-12 w-full border border-zinc-300 bg-zinc-200 px-4 text-zinc-700 focus:border-zinc-500 focus:outline-none"/> aka locator('#register-email') Call log: - waiting for locator('input[type="email"]')
Prova 3 (03/06 11:51) PASS Vídeo
#F1 PASS
2

Navegar al cercador de fitxes

Navega a la pàgina del cercador de fitxes i captura l'estat inicial sense filtres aplicats

stable (1x)
step3646-buscador-inicial

step3646 buscador inicial

5. navigate Navegar al cercador de fitxes
6. screenshot Capturar l'estat inicial del cercador
Prova 1 (03/06 11:51) PASS Vídeo
#C1 PASS
3

Filtrar per Urbanización i verificar resultats

Clica el filtre de radio Urbanización al cercador de fitxes i verifica que la URL s'actualitza amb el query string corresponent i que es mostren els resultats esperats en el component CardSearch

stable (1x)
step3647-resultats-urbanizacion

step3647 resultats urbanizacion

7. click Clicar l'etiqueta del radio "Urbanización" i esperar round-trip aside label:has(+ input[type="radio"][value="urbanization"])
8. validate Comprovar que la URL incorpora el query string i que es mostren resultats
Prova 1 (03/06 11:51) FAIL Vídeo
#C1 FAIL aside label:has(+ input[type="radio"][value="urbanizati... · refined
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
locator.click: Timeout 30000ms exceeded. Call log: - waiting for locator('aside label:has(+ input[type="radio"][value=... [veure tot] locator.click: Timeout 30000ms exceeded. Call log: - waiting for locator('aside label:has(+ input[type="radio"][value="urbanization"])')
#C2 FAIL input[type="radio"][value="urbanization"] · refined
El selector coincideix amb més d'un element — cal afinar-lo perquè sigui únic.
locator.click: Error: strict mode violation: locator('input[type="radio"][value="urbanization"]') resolved to 2 elements... [veure tot] locator.click: Error: strict mode violation: locator('input[type="radio"][value="urbanization"]') resolved to 2 elements: 1) <input type="radio" value="urbanization" class="peer sr-only" wire:model.live="selectedGuideType"/> aka locator('details').filter({ hasText: 'Filtros 0 Tipo de guía' }).getByLabel('Urbanización') 2) <input type="radio" value="urbanization" class="peer sr-only" wire:model.live="selectedGuideType"/> aka getByRole('radio', { name: 'Urbanización' }) Call log: - waiting for locator('input[type="radio"][value="urbanization"]')
#C3 FAIL · max_iterations
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('radio', { name: 'Urbanización' }).first()... [veure tot] locator.click: Timeout 30000ms exceeded. Call log: - waiting for getByRole('radio', { name: 'Urbanización' }).first() - locator resolved to <input type="radio" value="urbanization" class="peer sr-only" wire:model.live="selectedGuideType"/> - attempting click action 2 × waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <span>Urbanización</span> intercepts pointer events - retrying click action - waiting 20ms - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <span>Urbanización</span> intercepts pointer events 2 × retrying click action - waiting 100ms - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - element is outside of the viewport 14 × retrying click action - waiting 500ms - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <span>Urbanización</span> intercepts pointer events - retrying click action - waiting 500ms - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - <span>Urbanización</span> intercepts pointer events - retrying click action - waiting 500ms - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - element is outside of the viewport - retrying click action - waiting 500ms - waiting for element to be visible, enabled and stable - element is visible, enabled and stable - scrolling into view if needed - done scrolling - element is outside of the viewport - retrying click action - waiting 500ms
Prova 2 (03/06 12:48) FAIL Vídeo
#F1 FAIL · failed
El selector coincideix amb més d'un element — cal afinar-lo perquè sigui únic.
locator.click: Error: strict mode violation: getByText('Urbanización') resolved to 2 elements: 1) <span>Urbanización... [veure tot] locator.click: Error: strict mode violation: getByText('Urbanización') resolved to 2 elements: 1) <span>Urbanización</span> aka getByText('Urbanización').first() 2) <span>Urbanización</span> aka getByRole('complementary').getByText('Urbanización') Call log: - waiting for getByText('Urbanización')
Prova 3 (03/06 12:49) FAIL Vídeo
#F1 FAIL · failed
L'element no és visible en el moment d'interactuar — potser el contenidor pare no estava obert.
locator.click: Element is not visible Call log: - waiting for getByText('Urbanización').first() - locator resolved... [veure tot] locator.click: Element is not visible Call log: - waiting for getByText('Urbanización').first() - locator resolved to <span>Urbanización</span> - attempting click action - scrolling into view if needed
Prova 4 (03/06 12:51) FAIL Vídeo
#F1 FAIL .CardSearch · failed
Temps d'espera exhaurit — l'element no es va trobar o la pàgina no va acabar de carregar.
expect(locator).toHaveCount(expected) failed Locator: locator('.CardSearch') Expected: 1 Received: 0 Timeout: 5000ms... [veure tot] expect(locator).toHaveCount(expected) failed Locator: locator('.CardSearch') Expected: 1 Received: 0 Timeout: 5000ms Call log: - Expect "to.have.count" with timeout 5000ms - waiting for locator('.CardSearch') 9 × locator resolved to 0 elements - unexpected value "0"
Prova 5 (03/06 12:58) PASS Vídeo
#F1 PASS

Codi Playwright tots els passos · // @lock / // @unlock per protegir línies

Desat ✓ Edita directament · usa // @lock i // @unlock en línies separades per bloquejar una secció

Resum d'execució

Test estable · tots els passos correctes

Generant resum de l'execució…

Detalls

Estat
active
Generació
stable
Validació
stable
Tipus
Playwright
Creat
03/06/2026 10:02
Descripció
Clica radio Urbanización i verifica que mostra resultats filtrats i actualitza URL amb guide_type=urbanization

Tags

Tots els tags afegits

Cap tag assignat

Instruccions IA

Projecte

- **Locale coverage:** every public page and every key flow must be exercised in **both `/es` and `/eu`**; additionally verify the `/locale/{eu}` switch redirects back and persists in session. - **Default test account:** `admin@sprilur.test` / `password` (is_admin, verified, no 2FA) — use for `/admin` and authenticated frontend flows. For permission tests, use a **non-admin verified** user. - **Data conventions:** suffix any created test data (project `title`, document name, etc.) with a unique `uid` (timestamp/run id) to avoid collisions across runs. - **Mandatory assertions:** every form submission must assert the success outcome (redirect/toast) **and** the absence of validation errors; every navigation must assert the resulting **URL including its locale prefix**. - **Scope/priority:** auth + private project flows (login, create, evaluate, export) are **regression-critical** and get happy-path + key edge cases; public/buscador flows get happy path plus the "no guide type / no results / URL hydration" edges; backoffice gets representative CRUD smoke tests. - **Known seeded data to rely on:** - Guide types: **Urbanización** (`urbanization`), **Edificación** (`building`). - Typologies (urbanization): Residencial, Industrial, Terciario, Logístico, Equipamiento público, Mixto. (building): Edificio industrial, Edificio terciario. - Scopes (ámbito): **Proyecto**, **Obra**. - Chapters: GEN General, TRA Trabajos previos, PRE, VIA, AGU Agua, EST, ENE Energía, ZON, RES Residuos, EJE, MAN; (building) EDI Diseño del edificio, ENV. - Agents: Promotor, Proyectista, Constructor, Dirección facultativa, Administración pública, Empresa de mantenimiento. - Stages (Etapa): Planeamiento, Proyecto, Ejecución, Uso y mantenimiento, Fin de vida. - **Exports:** for PDF/CSV, assert the response/download headers (and CSV `;`/`,` formatting), not the binary contents.

Features Desat!

KPIs

Taxa d'èxit
0%
1r intent OK
0%
Iteracions totals
4
Temps total
154s
→ Validaci&oacute;
154s
Cost total
$0.3415
Tokens totals
34,053
Crides API
11
→ Cost/pas
$0.00c

Cost IA

Total
$0.3777
Generació
$0.3721
Execucions
$0.57c
Tokens totals
41,649
Crides API
15

Últimes Execucions

Cap execució encara.