Bom dia, Luidi! Como vai?
Quando você utiliza toMatchObject(data), está comparando o objeto resultado.content com o objeto data. Se o método cadastrarUsuario altera a propriedade senha de data, como, por exemplo, criptografando-a, então realmente haverá uma discrepância na comparação, já que data.senha não refletirá a senha criptografada.
Para resolver isso, você pode ajustar o teste para verificar apenas as propriedades que não são alteradas ou para comparar a senha de forma adequada. Aqui está uma sugestão de como você pode ajustar seu teste:
it('Ao cadastrar um usuário, validar o retorno das informações do usuário', async () => {
const data = {
nome: 'John Doe',
email: 'johndoe@example.com',
senha: 'senha123',
};
const resultado = await authService.cadastrarUsuario(data);
// Comparar apenas as propriedades que não são alteradas
expect(resultado.content).toMatchObject({
nome: data.nome,
email: data.email,
});
// Opcionalmente, você pode verificar se a senha foi alterada
expect(resultado.content.senha).not.toBe(data.senha);
await Usuario.excluir(resultado.content.id);
});
Dessa forma, você está garantindo que apenas as informações que não devem ser alteradas sejam comparadas diretamente. E, se necessário, você pode adicionar verificações específicas para a senha, como garantir que ela foi realmente modificada.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.