---
# System prepended metadata

title: Reunión de tests del actionReducer

---

# 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