Could someone help me because the following test failed? I'm trying to mock a function (isAlive) that is used inside another (filterCharacter)
utils/index.js
import { isAlive } from './is-alive';
export const filterCharacter = (characters, name) =>
characters.filter((char) => char && char.name.includes(name) && isAlive(char.alive));
utils/is-alive.js
export function isAlive() {
return true;
}
my test:
import { filterCharacter } from './index';
import { isAlive } from './is-alive';
jest.mock('./is-alive', () => ({ isAlive: jest.fn(() => true) }));
const mockCharacters = [
{ name: 'anakin skywalker', nickname: 'darth vader', alive: true },
{ name: 'leia organa', alive: false },
{ name: 'luke skywalker', alive: false },
{ name: 'r2-d2', alive: true },
{ name: 'c3po', alive: true },
];
describe('filterCharacter', () => {
it('filtra uma lista de personagens por um determinado nome e verifica se o personagem está vivo', () => {
const resultado = filterCharacter(mockCharacters, 'skywalker');
const esperado = 2;
expect(resultado.length).toEqual(esperado);
expect(isAlive).toHaveBeenCalledTimes(mockCharacters.length);
});
});
teste result error:
expect(received).toEqual(expected) // deep equality
Expected: 2
Received: 0