@the-bearded-bear/claude-craft 8.8.1 → 8.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dev/i18n/de/Angular/commands/check-compliance.md +218 -168
- package/Dev/i18n/de/Common/agents/refactoring-specialist.md +146 -69
- package/Dev/i18n/de/Common/commands/add-technology.md +166 -68
- package/Dev/i18n/de/Common/commands/setup-ci.md +216 -33
- package/Dev/i18n/de/Laravel/commands/check-compliance.md +223 -115
- package/Dev/i18n/de/Python/checklists/new-feature.md +319 -44
- package/Dev/i18n/de/React/rules/02-architecture.md +483 -322
- package/Dev/i18n/de/React/rules/03-coding-standards.md +584 -368
- package/Dev/i18n/de/Symfony/commands/check-compliance.md +186 -114
- package/Dev/i18n/de/Symfony/rules/07-testing-symfony.md +679 -10
- package/Dev/i18n/de/UIUX/commands/a11y-component.md +284 -26
- package/Dev/i18n/de/UIUX/commands/design-tokens.md +199 -35
- package/Dev/i18n/de/UIUX/commands/user-flow.md +179 -16
- package/Dev/i18n/de/VueJS/commands/check-compliance.md +227 -102
- package/Dev/i18n/es/Angular/commands/check-compliance.md +217 -167
- package/Dev/i18n/es/Common/commands/add-technology.md +158 -60
- package/Dev/i18n/es/Laravel/commands/check-compliance.md +223 -115
- package/Dev/i18n/es/React/commands/check-testing.md +263 -169
- package/Dev/i18n/es/ReactNative/commands/check-testing.md +256 -198
- package/Dev/i18n/es/Symfony/commands/check-compliance.md +189 -117
- package/Dev/i18n/es/Symfony/commands/check-testing.md +301 -102
- package/Dev/i18n/es/Symfony/commands/migration-plan.md +267 -34
- package/Dev/i18n/es/UIUX/commands/a11y-component.md +274 -16
- package/Dev/i18n/es/UIUX/commands/design-tokens.md +186 -22
- package/Dev/i18n/es/UIUX/commands/user-flow.md +173 -10
- package/Dev/i18n/es/VueJS/commands/check-compliance.md +227 -102
- package/Dev/i18n/fr/Angular/commands/check-compliance.md +217 -167
- package/Dev/i18n/fr/Common/commands/ralph-run.md +138 -60
- package/Dev/i18n/fr/Laravel/commands/check-compliance.md +223 -115
- package/Dev/i18n/fr/React/commands/check-architecture.md +370 -53
- package/Dev/i18n/fr/React/commands/check-code-quality.md +454 -64
- package/Dev/i18n/fr/React/commands/check-testing.md +476 -102
- package/Dev/i18n/fr/Symfony/commands/check-compliance.md +188 -116
- package/Dev/i18n/fr/VueJS/commands/check-compliance.md +227 -102
- package/Dev/i18n/pt/Angular/commands/check-compliance.md +225 -175
- package/Dev/i18n/pt/Common/agents/ralph-conductor.md +211 -30
- package/Dev/i18n/pt/Common/commands/add-technology.md +149 -51
- package/Dev/i18n/pt/Common/commands/ralph-run.md +239 -35
- package/Dev/i18n/pt/Flutter/commands/analyze-performance.md +331 -46
- package/Dev/i18n/pt/Flutter/commands/check-compliance.md +234 -29
- package/Dev/i18n/pt/Flutter/commands/generate-feature.md +526 -51
- package/Dev/i18n/pt/Flutter/commands/generate-widget.md +515 -27
- package/Dev/i18n/pt/Flutter/commands/golden-update.md +322 -46
- package/Dev/i18n/pt/Flutter/commands/localization-check.md +278 -37
- package/Dev/i18n/pt/Laravel/commands/check-compliance.md +212 -104
- package/Dev/i18n/pt/React/commands/accessibility-check.md +151 -42
- package/Dev/i18n/pt/React/commands/bundle-analyze.md +300 -25
- package/Dev/i18n/pt/React/commands/check-architecture.md +369 -34
- package/Dev/i18n/pt/React/commands/check-code-quality.md +440 -34
- package/Dev/i18n/pt/React/commands/check-compliance.md +232 -62
- package/Dev/i18n/pt/React/commands/check-security.md +370 -31
- package/Dev/i18n/pt/React/commands/check-testing.md +473 -43
- package/Dev/i18n/pt/React/commands/generate-component.md +454 -19
- package/Dev/i18n/pt/React/commands/generate-hook.md +425 -24
- package/Dev/i18n/pt/React/commands/storybook-story.md +520 -35
- package/Dev/i18n/pt/ReactNative/commands/app-size.md +358 -387
- package/Dev/i18n/pt/ReactNative/commands/check-code-quality.md +246 -75
- package/Dev/i18n/pt/ReactNative/commands/check-compliance.md +191 -85
- package/Dev/i18n/pt/ReactNative/commands/check-security.md +363 -115
- package/Dev/i18n/pt/ReactNative/commands/check-testing.md +269 -79
- package/Dev/i18n/pt/ReactNative/commands/generate-screen.md +491 -324
- package/Dev/i18n/pt/ReactNative/commands/native-module.md +539 -82
- package/Dev/i18n/pt/ReactNative/commands/store-prepare.md +429 -185
- package/Dev/i18n/pt/ReactNative/rules/02-architecture.md +1084 -31
- package/Dev/i18n/pt/Symfony/commands/check-compliance.md +195 -123
- package/Dev/i18n/pt/UIUX/commands/a11y-audit.md +208 -24
- package/Dev/i18n/pt/UIUX/commands/a11y-component.md +281 -23
- package/Dev/i18n/pt/UIUX/commands/design-tokens.md +197 -33
- package/Dev/i18n/pt/UIUX/commands/user-flow.md +183 -20
- package/Dev/i18n/pt/VueJS/commands/check-compliance.md +228 -103
- package/Dev/i18n/pt/Workflow/commands/analyze.md +147 -146
- package/Dev/i18n/pt/Workflow/commands/design.md +205 -204
- package/Dev/i18n/pt/Workflow/commands/implement.md +184 -184
- package/Project/i18n/de/Sprint/commands/dev.md +339 -86
- package/Project/i18n/es/Sprint/commands/dev.md +342 -91
- package/Project/i18n/pt/Sprint/commands/dev.md +343 -92
- package/bundles/cursor/.cursorrules +1 -1
- package/bundles/windsurf/.windsurfrules +1 -1
- package/package.json +1 -1
|
@@ -1,262 +1,320 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Verificar Testing de React Native
|
|
3
|
+
argument-hint: [arguments]
|
|
3
4
|
---
|
|
4
5
|
|
|
5
|
-
#
|
|
6
|
+
# Verificar Testing de React Native
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
## Argumentos
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
$ARGUMENTS
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
# Todos los tests
|
|
13
|
-
npm test
|
|
12
|
+
## Modo Plan
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
npm test -- --watch
|
|
14
|
+
> El modo plan se activa automáticamente cuando el alcance abarca varios módulos o requiere una investigación transversal.
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
npm test -- --coverage
|
|
16
|
+
## MISIÓN
|
|
20
17
|
|
|
21
|
-
|
|
22
|
-
npm test -- UserProfile
|
|
23
|
-
```
|
|
18
|
+
Eres un experto en auditoría de testing de React Native. Tu misión es analizar la estrategia de pruebas y la cobertura de acuerdo con los estándares definidos en `.claude/rules/07-testing.md` y `.claude/rules/08-quality-tools.md`.
|
|
24
19
|
|
|
25
|
-
|
|
20
|
+
### Paso 1: Análisis de la configuración de pruebas
|
|
26
21
|
|
|
27
|
-
|
|
22
|
+
1. Verificar la presencia y configuración de Jest
|
|
23
|
+
2. Verificar la presencia y configuración de React Native Testing Library (RNTL)
|
|
24
|
+
3. Verificar la presencia y configuración de Detox (pruebas E2E)
|
|
25
|
+
4. Analizar los scripts de prueba en package.json
|
|
26
|
+
|
|
27
|
+
### Paso 2: Configuración de Jest (5 puntos)
|
|
28
|
+
|
|
29
|
+
#### 🧪 Archivos de configuración
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
- [ ] **(1 pt)** `jest.config.js` o configuración en package.json presente
|
|
32
|
+
- [ ] **(1 pt)** Preset de React Native configurado (`@react-native/jest-preset` o equivalente)
|
|
33
|
+
- [ ] **(1 pt)** Archivos de configuración definidos (`setupFilesAfterEnv`)
|
|
34
|
+
- [ ] **(1 pt)** Cobertura de código habilitada (coverage)
|
|
35
|
+
- [ ] **(1 pt)** Transformaciones configuradas para TypeScript y React Native
|
|
30
36
|
|
|
37
|
+
**Archivos a verificar:**
|
|
31
38
|
```bash
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
jest.config.js
|
|
40
|
+
jest.setup.js
|
|
41
|
+
package.json
|
|
42
|
+
```
|
|
34
43
|
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
#### 📊 Configuración de cobertura
|
|
45
|
+
|
|
46
|
+
Verificar en `jest.config.js`:
|
|
47
|
+
```javascript
|
|
48
|
+
coverageThreshold: {
|
|
49
|
+
global: {
|
|
50
|
+
branches: 80,
|
|
51
|
+
functions: 80,
|
|
52
|
+
lines: 80,
|
|
53
|
+
statements: 80
|
|
54
|
+
}
|
|
55
|
+
}
|
|
37
56
|
```
|
|
38
57
|
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
- Functions: > 80%
|
|
43
|
-
- Lines: > 80%
|
|
58
|
+
- [ ] Umbrales de cobertura definidos (≥ 80% recomendado)
|
|
59
|
+
- [ ] Recopilación desde las carpetas correctas (src/, app/)
|
|
60
|
+
- [ ] Exclusiones apropiadas (node_modules, __tests__, etc.)
|
|
44
61
|
|
|
45
|
-
|
|
62
|
+
### Paso 3: Pruebas Unitarias con RNTL (8 puntos)
|
|
46
63
|
|
|
47
|
-
|
|
64
|
+
Referencia: `.claude/rules/07-testing.md`
|
|
48
65
|
|
|
49
|
-
|
|
50
|
-
// Component.test.tsx
|
|
51
|
-
describe('Button', () => {
|
|
52
|
-
it('renders correctly', () => {
|
|
53
|
-
const { getByText } = render(<Button>Click me</Button>);
|
|
54
|
-
expect(getByText('Click me')).toBeTruthy();
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
```
|
|
66
|
+
#### 📁 Organización de pruebas
|
|
58
67
|
|
|
59
|
-
**
|
|
60
|
-
- [ ]
|
|
61
|
-
- [ ]
|
|
62
|
-
- [ ] Utils y helpers testeados
|
|
63
|
-
- [ ] Edge cases cubiertos
|
|
68
|
+
- [ ] **(1 pt)** Pruebas colocadas junto a los componentes o en `__tests__/`
|
|
69
|
+
- [ ] **(1 pt)** Convención de nomenclatura: `*.test.tsx` o `*.spec.tsx`
|
|
70
|
+
- [ ] **(1 pt)** Estructura AAA (Arrange, Act, Assert) respetada
|
|
64
71
|
|
|
65
|
-
|
|
72
|
+
**Archivos a verificar:**
|
|
73
|
+
```bash
|
|
74
|
+
src/**/__tests__/
|
|
75
|
+
src/**/*.test.tsx
|
|
76
|
+
src/**/*.spec.tsx
|
|
77
|
+
```
|
|
66
78
|
|
|
67
|
-
|
|
68
|
-
// Feature.integration.test.tsx
|
|
69
|
-
describe('User Flow', () => {
|
|
70
|
-
it('completes registration', async () => {
|
|
71
|
-
const { getByText, getByPlaceholder } = render(<App />);
|
|
79
|
+
#### 🧩 Calidad de las pruebas unitarias
|
|
72
80
|
|
|
73
|
-
|
|
74
|
-
fireEvent.press(getByText('Sign Up'));
|
|
81
|
+
Analizar entre 5 y 10 archivos de prueba:
|
|
75
82
|
|
|
76
|
-
|
|
77
|
-
|
|
83
|
+
- [ ] **(1 pt)** Uso de `@testing-library/react-native` (render, fireEvent, waitFor)
|
|
84
|
+
- [ ] **(1 pt)** Pruebas de componentes aisladas con props simuladas
|
|
85
|
+
- [ ] **(1 pt)** Pruebas de hooks personalizados con `@testing-library/react-hooks`
|
|
86
|
+
- [ ] **(1 pt)** Mocks apropiados para módulos nativos (AsyncStorage, etc.)
|
|
87
|
+
- [ ] **(1 pt)** Pruebas de casos límite y errores
|
|
78
88
|
|
|
79
|
-
|
|
80
|
-
|
|
89
|
+
**Ejemplo de buena prueba:**
|
|
90
|
+
```typescript
|
|
91
|
+
describe('LoginButton', () => {
|
|
92
|
+
it('should call onPress when pressed', () => {
|
|
93
|
+
const onPress = jest.fn();
|
|
94
|
+
const { getByText } = render(<LoginButton onPress={onPress} />);
|
|
95
|
+
|
|
96
|
+
fireEvent.press(getByText('Login'));
|
|
81
97
|
|
|
82
|
-
|
|
83
|
-
await waitFor(() => {
|
|
84
|
-
expect(getByText('Welcome')).toBeTruthy();
|
|
85
|
-
});
|
|
98
|
+
expect(onPress).toHaveBeenCalledTimes(1);
|
|
86
99
|
});
|
|
87
100
|
});
|
|
88
101
|
```
|
|
89
102
|
|
|
90
|
-
|
|
91
|
-
- [ ] Flujos de usuario críticos testeados
|
|
92
|
-
- [ ] Navegación testeada
|
|
93
|
-
- [ ] Formularios completos testeados
|
|
94
|
-
- [ ] Integración con APIs mockeada
|
|
103
|
+
### Paso 4: Pruebas de Integración (4 puntos)
|
|
95
104
|
|
|
96
|
-
|
|
105
|
+
- [ ] **(1 pt)** Pruebas de flujos de usuario completos
|
|
106
|
+
- [ ] **(1 pt)** Pruebas de navegación entre pantallas
|
|
107
|
+
- [ ] **(1 pt)** Pruebas de llamadas a API simuladas
|
|
108
|
+
- [ ] **(1 pt)** Pruebas de gestión del estado (Context, Redux, Zustand)
|
|
97
109
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
await element(by.id('email-input')).typeText('user@example.com');
|
|
103
|
-
await element(by.id('password-input')).typeText('password123');
|
|
104
|
-
await element(by.id('login-button')).tap();
|
|
105
|
-
|
|
106
|
-
await waitFor(element(by.text('Dashboard')))
|
|
107
|
-
.toBeVisible()
|
|
108
|
-
.withTimeout(5000);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
110
|
+
**Archivos a verificar:**
|
|
111
|
+
```bash
|
|
112
|
+
src/**/*.integration.test.tsx
|
|
113
|
+
__tests__/integration/
|
|
111
114
|
```
|
|
112
115
|
|
|
113
|
-
|
|
114
|
-
- [ ] Flujos críticos E2E
|
|
115
|
-
- [ ] Login/Logout
|
|
116
|
-
- [ ] Flujos de compra/reserva
|
|
117
|
-
- [ ] Configuración Detox correcta
|
|
116
|
+
### Paso 5: Pruebas E2E con Detox (4 puntos)
|
|
118
117
|
|
|
119
|
-
|
|
118
|
+
#### 🤖 Configuración de Detox
|
|
120
119
|
|
|
121
|
-
|
|
120
|
+
- [ ] **(1 pt)** `.detoxrc.js` o configuración de Detox presente
|
|
121
|
+
- [ ] **(1 pt)** Configuración para iOS y Android
|
|
122
|
+
- [ ] **(1 pt)** Scripts de prueba E2E en package.json (`test:e2e`)
|
|
122
123
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
server.use(
|
|
130
|
-
http.get('/api/user', () => HttpResponse.json(mockUser))
|
|
131
|
-
);
|
|
132
|
-
|
|
133
|
-
// Act
|
|
134
|
-
const { findByText } = render(<UserProfile />);
|
|
135
|
-
|
|
136
|
-
// Assert
|
|
137
|
-
const nameElement = await findByText('John Doe');
|
|
138
|
-
expect(nameElement).toBeTruthy();
|
|
139
|
-
});
|
|
140
|
-
});
|
|
124
|
+
**Archivos a verificar:**
|
|
125
|
+
```bash
|
|
126
|
+
.detoxrc.js
|
|
127
|
+
.detoxrc.json
|
|
128
|
+
e2e/
|
|
129
|
+
package.json
|
|
141
130
|
```
|
|
142
131
|
|
|
143
|
-
|
|
144
|
-
- [ ] Nombres descriptivos
|
|
145
|
-
- [ ] Patrón AAA (Arrange, Act, Assert)
|
|
146
|
-
- [ ] Un solo concepto por test
|
|
147
|
-
- [ ] Tests independientes
|
|
148
|
-
- [ ] Sin lógica compleja en tests
|
|
132
|
+
#### 🎬 Pruebas E2E
|
|
149
133
|
|
|
150
|
-
|
|
134
|
+
- [ ] **(1 pt)** Al menos 3 escenarios E2E críticos probados (inicio de sesión, navegación principal, acción clave)
|
|
151
135
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}));
|
|
157
|
-
|
|
158
|
-
// Mock de hooks
|
|
159
|
-
jest.mock('@react-navigation/native', () => ({
|
|
160
|
-
useNavigation: () => ({
|
|
161
|
-
navigate: jest.fn()
|
|
162
|
-
})
|
|
163
|
-
}));
|
|
164
|
-
|
|
165
|
-
// Mock de AsyncStorage
|
|
166
|
-
jest.mock('@react-native-async-storage/async-storage', () =>
|
|
167
|
-
require('@react-native-async-storage/async-storage/jest/async-storage-mock')
|
|
168
|
-
);
|
|
136
|
+
**Archivos a verificar:**
|
|
137
|
+
```bash
|
|
138
|
+
e2e/**/*.e2e.ts
|
|
139
|
+
e2e/**/*.e2e.js
|
|
169
140
|
```
|
|
170
141
|
|
|
171
|
-
|
|
172
|
-
- [ ] APIs mockeadas con MSW
|
|
173
|
-
- [ ] AsyncStorage mockeado
|
|
174
|
-
- [ ] Navigation mockeada
|
|
175
|
-
- [ ] Módulos nativos mockeados
|
|
142
|
+
### Paso 6: Cobertura de Pruebas (4 puntos)
|
|
176
143
|
|
|
177
|
-
|
|
144
|
+
Ejecutar el comando de cobertura:
|
|
178
145
|
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
.toJSON();
|
|
184
|
-
expect(tree).toMatchSnapshot();
|
|
185
|
-
});
|
|
146
|
+
```bash
|
|
147
|
+
npm run test -- --coverage
|
|
148
|
+
# o
|
|
149
|
+
yarn test --coverage
|
|
186
150
|
```
|
|
187
151
|
|
|
188
|
-
|
|
189
|
-
- [ ] Componentes UI críticos con snapshots
|
|
190
|
-
- [ ] Snapshots actualizados regularmente
|
|
191
|
-
- [ ] Cambios de snapshot revisados
|
|
192
|
-
- [ ] No abusar de snapshots
|
|
152
|
+
Analizar el informe de cobertura:
|
|
193
153
|
|
|
194
|
-
|
|
154
|
+
- [ ] **(1 pt)** Cobertura global ≥ 80%
|
|
155
|
+
- [ ] **(1 pt)** Cobertura de ramas ≥ 75%
|
|
156
|
+
- [ ] **(1 pt)** Componentes críticos cubiertos al 100%
|
|
157
|
+
- [ ] **(1 pt)** Informe de cobertura generado (coverage/lcov-report/)
|
|
195
158
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
159
|
+
**Archivos a verificar:**
|
|
160
|
+
```bash
|
|
161
|
+
coverage/lcov-report/index.html
|
|
162
|
+
coverage/coverage-summary.json
|
|
163
|
+
```
|
|
199
164
|
|
|
200
|
-
|
|
201
|
-
render(<ItemList items={items} />);
|
|
202
|
-
const end = performance.now();
|
|
165
|
+
### Paso 7: Calcular la puntuación
|
|
203
166
|
|
|
204
|
-
|
|
205
|
-
|
|
167
|
+
```
|
|
168
|
+
┌──────────────────────────────────┬─────────┬────────┐
|
|
169
|
+
│ Criterio │ Puntos │ Estado │
|
|
170
|
+
├──────────────────────────────────┼─────────┼────────┤
|
|
171
|
+
│ Configuración de Jest │ XX/5 │ ✅/⚠️/❌│
|
|
172
|
+
│ Pruebas Unitarias (RNTL) │ XX/8 │ ✅/⚠️/❌│
|
|
173
|
+
│ Pruebas de Integración │ XX/4 │ ✅/⚠️/❌│
|
|
174
|
+
│ Pruebas E2E (Detox) │ XX/4 │ ✅/⚠️/❌│
|
|
175
|
+
│ Cobertura de Código │ XX/4 │ ✅/⚠️/❌│
|
|
176
|
+
├──────────────────────────────────┼─────────┼────────┤
|
|
177
|
+
│ TOTAL TESTING │ XX/25 │ ✅/⚠️/❌│
|
|
178
|
+
└──────────────────────────────────┴─────────┴────────┘
|
|
206
179
|
```
|
|
207
180
|
|
|
208
|
-
|
|
181
|
+
**Leyenda:**
|
|
182
|
+
- ✅ Excelente (≥ 20/25)
|
|
183
|
+
- ⚠️ Advertencia (15-19/25)
|
|
184
|
+
- ❌ Crítico (< 15/25)
|
|
209
185
|
|
|
210
|
-
|
|
211
|
-
# Ver reporte de cobertura
|
|
212
|
-
npm test -- --coverage
|
|
186
|
+
### Paso 8: Informe detallado
|
|
213
187
|
|
|
214
|
-
|
|
215
|
-
npm test -- --onlyFailures
|
|
188
|
+
## 📊 RESULTADOS DE LA AUDITORÍA DE TESTING
|
|
216
189
|
|
|
217
|
-
|
|
218
|
-
npm test -- --verbose
|
|
219
|
-
```
|
|
190
|
+
### ✅ Fortalezas
|
|
220
191
|
|
|
221
|
-
|
|
192
|
+
Enumerar las buenas prácticas identificadas:
|
|
193
|
+
- [Práctica 1 con ejemplo de prueba]
|
|
194
|
+
- [Práctica 2 con ejemplo de prueba]
|
|
222
195
|
|
|
223
|
-
|
|
224
|
-
|---------|----------|--------|
|
|
225
|
-
| Cobertura Total | > 80% | ___% |
|
|
226
|
-
| Tests Unitarios | > 500 | ___ |
|
|
227
|
-
| Tests Integración | > 50 | ___ |
|
|
228
|
-
| Tests E2E | > 10 | ___ |
|
|
229
|
-
| Tiempo Ejecución | < 5 min | ___ |
|
|
196
|
+
### ⚠️ Puntos de Mejora
|
|
230
197
|
|
|
231
|
-
|
|
198
|
+
Enumerar los problemas identificados por prioridad:
|
|
232
199
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
200
|
+
1. **[Problema 1]**
|
|
201
|
+
- **Gravedad:** Crítica/Alta/Media
|
|
202
|
+
- **Ubicación:** [Archivos/componentes sin pruebas]
|
|
203
|
+
- **Impacto:** [Riesgo de regresión]
|
|
204
|
+
- **Recomendación:** [Acciones a tomar]
|
|
237
205
|
|
|
238
|
-
|
|
239
|
-
|
|
206
|
+
2. **[Problema 2]**
|
|
207
|
+
- **Gravedad:** Crítica/Alta/Media
|
|
208
|
+
- **Ubicación:** [Archivos/componentes sin pruebas]
|
|
209
|
+
- **Impacto:** [Riesgo de regresión]
|
|
210
|
+
- **Recomendación:** [Acciones a tomar]
|
|
211
|
+
|
|
212
|
+
### 📈 Métricas de Testing
|
|
213
|
+
|
|
214
|
+
#### Cobertura de código
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
┌─────────────────┬──────────┬──────────┬──────────┬──────────┐
|
|
218
|
+
│ Tipo │ Líneas │ Ramas │ Funciones│ Sentencias│
|
|
219
|
+
├─────────────────┼──────────┼──────────┼──────────┼──────────┤
|
|
220
|
+
│ Global │ XX.XX% │ XX.XX% │ XX.XX% │ XX.XX% │
|
|
221
|
+
│ Componentes │ XX.XX% │ XX.XX% │ XX.XX% │ XX.XX% │
|
|
222
|
+
│ Hooks │ XX.XX% │ XX.XX% │ XX.XX% │ XX.XX% │
|
|
223
|
+
│ Utils │ XX.XX% │ XX.XX% │ XX.XX% │ XX.XX% │
|
|
224
|
+
│ Servicios │ XX.XX% │ XX.XX% │ XX.XX% │ XX.XX% │
|
|
225
|
+
└─────────────────┴──────────┴──────────┴──────────┴──────────┘
|
|
240
226
|
```
|
|
241
227
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
-
|
|
245
|
-
-
|
|
246
|
-
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
-
|
|
250
|
-
-
|
|
251
|
-
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
- [ ]
|
|
228
|
+
#### Estadísticas de pruebas
|
|
229
|
+
|
|
230
|
+
- **Número total de pruebas:** XX
|
|
231
|
+
- Pruebas unitarias: XX
|
|
232
|
+
- Pruebas de integración: XX
|
|
233
|
+
- Pruebas E2E: XX
|
|
234
|
+
- **Pruebas aprobadas:** XX
|
|
235
|
+
- **Pruebas fallidas:** XX
|
|
236
|
+
- **Tiempo total de ejecución:** XX segundos
|
|
237
|
+
- **Ratio pruebas/código:** XX pruebas para YY líneas de código
|
|
238
|
+
|
|
239
|
+
#### Componentes sin pruebas
|
|
240
|
+
|
|
241
|
+
Enumerar los componentes críticos sin pruebas:
|
|
242
|
+
1. `[Ruta/Componente]` - [Razón de criticidad]
|
|
243
|
+
2. `[Ruta/Componente]` - [Razón de criticidad]
|
|
244
|
+
3. `[Ruta/Componente]` - [Razón de criticidad]
|
|
245
|
+
|
|
246
|
+
#### Funcionalidades críticas probadas
|
|
247
|
+
|
|
248
|
+
- [ ] Autenticación (login, logout, refresh token)
|
|
249
|
+
- [ ] Navegación principal
|
|
250
|
+
- [ ] Formularios críticos
|
|
251
|
+
- [ ] Llamadas principales a la API
|
|
252
|
+
- [ ] Manejo de errores
|
|
253
|
+
- [ ] Estados de carga
|
|
254
|
+
- [ ] Gestión offline
|
|
255
|
+
|
|
256
|
+
### 🎯 TOP 3 ACCIONES PRIORITARIAS
|
|
257
|
+
|
|
258
|
+
#### 1. [ACCIÓN #1]
|
|
259
|
+
- **Esfuerzo:** Bajo/Medio/Alto
|
|
260
|
+
- **Impacto:** Crítico/Alto/Medio
|
|
261
|
+
- **Descripción:** [Componentes/funcionalidades a probar con prioridad]
|
|
262
|
+
- **Cobertura actual:** XX%
|
|
263
|
+
- **Cobertura objetivo:** YY%
|
|
264
|
+
- **Archivos afectados:**
|
|
265
|
+
- `[archivo1]` (cobertura: XX%)
|
|
266
|
+
- `[archivo2]` (cobertura: XX%)
|
|
267
|
+
- **Ejemplo de pruebas a añadir:**
|
|
268
|
+
```typescript
|
|
269
|
+
describe('[Componente]', () => {
|
|
270
|
+
it('should [comportamiento]', () => {
|
|
271
|
+
// Prueba a implementar
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
#### 2. [ACCIÓN #2]
|
|
277
|
+
- **Esfuerzo:** Bajo/Medio/Alto
|
|
278
|
+
- **Impacto:** Crítico/Alto/Medio
|
|
279
|
+
- **Descripción:** [Configuración o mejora de pruebas]
|
|
280
|
+
- **Archivos afectados:** [Lista]
|
|
281
|
+
|
|
282
|
+
#### 3. [ACCIÓN #3]
|
|
283
|
+
- **Esfuerzo:** Bajo/Medio/Alto
|
|
284
|
+
- **Impacto:** Crítico/Alto/Medio
|
|
285
|
+
- **Descripción:** [Pruebas E2E o de integración a añadir]
|
|
286
|
+
- **Escenarios a cubrir:**
|
|
287
|
+
- [Escenario 1]
|
|
288
|
+
- [Escenario 2]
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 🚀 Recomendaciones
|
|
293
|
+
|
|
294
|
+
### Victorias Rápidas (Bajo esfuerzo, alto impacto)
|
|
295
|
+
- [Mejora rápida 1]
|
|
296
|
+
- [Mejora rápida 2]
|
|
297
|
+
|
|
298
|
+
### Inversiones (Esfuerzo medio/alto, alto impacto)
|
|
299
|
+
- [Mejora estructural 1]
|
|
300
|
+
- [Mejora estructural 2]
|
|
301
|
+
|
|
302
|
+
### Buenas prácticas a adoptar
|
|
303
|
+
- Escribir pruebas junto al código (TDD)
|
|
304
|
+
- Apuntar a una cobertura mínima del 80%
|
|
305
|
+
- Probar casos límite y errores
|
|
306
|
+
- Mantener las pruebas actualizadas con el código
|
|
307
|
+
- Usar snapshots con moderación
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## 📚 Referencias
|
|
312
|
+
|
|
313
|
+
- `.claude/rules/07-testing.md` - Estándares de testing
|
|
314
|
+
- `.claude/rules/08-quality-tools.md` - Herramientas de calidad
|
|
315
|
+
- [React Native Testing Library](https://callstack.github.io/react-native-testing-library/)
|
|
316
|
+
- [Detox Documentation](https://wix.github.io/Detox/)
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
**Puntuación final: XX/25**
|