# 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