# Reunión de tests del actionReducer
# Problemas
- Las va
# Reglas
- Cada test debe reiniciar los mocks que va a utilizar si es que el mock no lo definió el test.
- No se puede modificar la respuesta del mock dentro de un test. En vez de eso debes crear un nuevo mock dentro test o fuera de él si es que otros tests lo requieren.
- No se puede modificar variables definidas fuera del test.
- Cada test solo puede llamar 1 sola vez a lo que se está testeando.
- Todas las funciones mocks que representan funciones asincronas, deben ser asincronas.
- Siempre debemos testear el resultado del actionReducer.
- Recorrer al menos 1 vez todos las "branches" del actionReducer.
- Testeo de argumentos: Se debe testear un caso normal y los nombrados abajo, siempre y cuando haga sentido.
- Number: 0, negativos, positivos decimales.
- String: '', 1 carácter, string tiene números
- Array: Vacío, no Vacío
- null
- undefined
- Crear la acción a través del actionGenerator. No definir a mano como objetos.
- No ejecutar el actionReducer en un describe, siempre dentro de un test.
- No definir ningun objeto fuera de los tests. Si necesitas un objeto generico, utiliza /mocks/testData.js.
# Sugerencias
- Cuando tienes muchos expects (sobre 5) en un mismo test, deja comentarios para explicar qué se está testeando.
# Template
```
// Mocks...
// Mocks asincronos de ejemplo
const insertRequest = jest.fn(async () => 'r3')
// describe
```
# Ideas:
- Implementaar typescript