Skip to content

Commit 3d96694

Browse files
Alex Fuentesclaude
andcommitted
Add pre-plan for next session: test skeletons and instructor guide
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c6996fa commit 3d96694

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed

.aiplan/next-session-preplan.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Pre-plan: Tests esqueleto en master + Guión del instructor
2+
3+
## Contexto
4+
5+
Workshop funcionalmente completo y visualmente pulido. Este pre-plan recoge dos iniciativas
6+
pendientes que preparar antes del workshop.
7+
8+
---
9+
10+
## Iniciativa 1: Tests esqueleto en master
11+
12+
### Idea
13+
14+
En `master` (punto de partida de los asistentes), todos los test files estarán creados con
15+
los `it` escritos pero vacíos (`it.todo`), agrupados por `describe` por iteración. Así los
16+
asistentes tienen desde el primer momento una guía clara de qué deben construir en cada fase.
17+
18+
### Motivación
19+
20+
- Los asistentes no arrancan de cero sin saber qué testear
21+
- Elimina el tiempo de "¿qué test escribo primero?"
22+
- Los `describe` por iteración dan estructura y orientación progresiva
23+
- Los `it.todo` aparecen en el runner como pendientes (feedback visual inmediato)
24+
25+
### Estructura propuesta
26+
27+
**`src/pages/home/__tests__/Home.test.tsx`**
28+
```
29+
describe('Iteración 1 - Listado de categorías', () => {
30+
it.todo('should render the list of categories in the navigation')
31+
})
32+
33+
describe('Iteración 2 - Listado de productos', () => {
34+
it.todo('should display the products with their prices correctly formatted')
35+
})
36+
37+
describe('Iteración 4 - Toggle card/list view', () => {
38+
it.todo('should not display product descriptions and nutriscore in card view')
39+
it.todo('should display product descriptions and nutriscore when switching to list view')
40+
it.todo('should hide product descriptions and nutriscore when switching back to card view')
41+
})
42+
43+
describe('Iteración 5 - Modal de producto', () => {
44+
it.todo('should open a dialog with product details when clicking a product')
45+
it.todo('should close the dialog when clicking close button')
46+
})
47+
```
48+
49+
**`src/pages/category-detail/__tests__/CategoryDetail.test.tsx`**
50+
```
51+
describe('Iteración 3 - Navegación y routing', () => {
52+
it.todo('should navigate to the category page and display the category title')
53+
it.todo('should display a not found message when the category does not exist')
54+
it.todo('should highlight the active category in the navigation')
55+
it.todo('should navigate to home when clicking the logo')
56+
})
57+
```
58+
59+
**`src/pages/not-found/__tests__/NotFound.test.tsx`** — pendiente de decidir si tiene
60+
sentido incluirlo aquí o si se crea en la iteración 3 en vivo.
61+
62+
### Preguntas a resolver en sesión de planificación
63+
64+
- ¿Los `it.todo` o simplemente `it('descripción')` sin callback? (Vitest muestra ambos como
65+
pending, pero `it.todo` es más explícito)
66+
- ¿Se mantiene el test de Home que ya existe en master
67+
(`should render the list of categories in the navigation` real, no todo)?
68+
O se convierte también en todo y el asistente lo implementa en iteración 1
69+
- ¿Los helpers (`clickCategory`, `toggleViewMode`, `clickProduct`) también en master
70+
como esqueleto vacío, o se añaden en cada iteración?
71+
- ¿Los imports necesarios para los tests (App, screen, render...) ya incluidos en el esqueleto,
72+
o se deja el archivo completamente vacío salvo los describes?
73+
- ¿Cómo afecta esto a las ramas `-start`? Deberían heredar de master limpiamente.
74+
Las ramas `-solution` ya tienen los tests reales implementados.
75+
76+
### Impacto en ramas
77+
78+
- Solo afecta a `master` (y por cascade a todas las ramas `-start`)
79+
- Las ramas `-solution` no se tocan: ya tienen los tests completos
80+
- Hay que verificar que los `it.todo` no rompan ninguna configuración de CI
81+
82+
---
83+
84+
## Iniciativa 2: Guión del instructor
85+
86+
### Idea
87+
88+
Documento markdown que sirve de guión para conducir el workshop. No es un tutorial para
89+
asistentes sino una referencia para quien lo imparte.
90+
91+
### Estructura propuesta
92+
93+
```
94+
# Guión del instructor - TDD Workshop
95+
96+
## Antes de empezar
97+
- Setup del entorno (requisitos, clone, npm install, npm start)
98+
- Cómo mostrar las ramas solución
99+
100+
## Iteración 1 — Listado de categorías (~20 min)
101+
### Qué van a construir
102+
### Ciclo TDD esperado
103+
### Puntos clave a remarcar
104+
### Solución de referencia (rama: iteration-1-solution)
105+
### Errores frecuentes
106+
107+
## Iteración 2 — Productos y formateo (~25 min)
108+
...
109+
110+
## Iteración 3 — Navegación y routing (~25 min)
111+
...
112+
113+
## Iteración 4 — Toggle card/list view (~20 min)
114+
...
115+
116+
## Iteración 5 — Modal con dialog nativo (~20 min)
117+
...
118+
119+
## Cierre
120+
- Retrospectiva con asistentes
121+
- Recursos y siguientes pasos
122+
```
123+
124+
### Preguntas a resolver en sesión de planificación
125+
126+
- ¿Dónde vive el documento? ¿`.aiplan/instructor-guide.md` o en raíz como `INSTRUCTOR.md`?
127+
- ¿Nivel de detalle: solo puntos clave o con el código de solución inline?
128+
- ¿Incluye timings orientativos?
129+
- ¿Se escribe en español o inglés?
130+
131+
---
132+
133+
## Orden sugerido de implementación
134+
135+
1. Tests esqueleto en master (impacta código, requiere cascade)
136+
2. Guión del instructor (solo documentación, independiente)

0 commit comments

Comments
 (0)