¿Alguien podría ayudarme porque la siguiente prueba falló? Estoy tratando de burlarme de una función (isAlive) que se usa dentro de otra (filterCharacter)
utils/index.js
import { isAlive } from './is-alive';
export const filterCharacter = (caracteres, nombre) =>
caracteres.filter((char) => char && char.name.includes(name) && isAlive(char.alive));
utils/is-alive.js
función de exportación isAlive() {
devolver verdadero;
}
mi prueba:
import { filterCharacter } desde './index';
import { isAlive } from './is-alive';
jest.mock('./is-alive', () => ({ isAlive: jest.fn(() => true) }));
const personajes falsos = [
{nombre: 'anakin skywalker', apodo: 'darth vader', vivo: verdadero},
{nombre: 'leia organa', vivo: falso},
{nombre: 'luke skywalker', vivo: falso},
{nombre: 'r2-d2', vivo: verdadero},
{nombre: 'c3po', vivo: verdadero},
];
describe('carácter de filtro', () => {
it('filtra una lista de personajes por un nombre determinado y verifica si el personaje está vivo', () => {
const resultado = filterCharacter(mockCharacters, 'skywalker');
const esperada = 2;
expect(resultado.length).toEqual(esperado);
expect(isAlive).toHaveBeenCalledTimes(mockCharacters.length);
});
});
error de resultado de prueba:
expect(recibido).toEqual(esperado) // igualdad profunda
Esperado: 2
Recibido: 0