it('A senha do usuário precisa ser criptografada quando for salva no banco de dados', async () => {
const data = {
nome: 'John Doe',
email: 'johndoe@example.com',
senha: 'senha123',
};
const resultado = await authService.cadastrarUsuario(data);
const senhaIguais = await bcryptjs.compare('senha123', resultado.content.senha);
expect(senhaIguais).toStrictEqual(true);
await Usuario.excluir(resultado.content.id);
});
async cadastrarUsuario(data) {
try {
if(!data.senha) {
throw new Error('A senha de usuário é obrigatório!');
}
data.senha = await bcryptjs.hash(data.senha, 8);
const usuario = new Usuario(data);
const resposta = await usuario.salvar(usuario);
return { message: 'usuario criado', content: resposta };
} catch (err) {
throw new Error(err.message);
}
}
1)O teste feito é unitário ou de integração e pq?
2)Se é de integração tbm precisariamos fazer um teste unitário? Se sim pq?
3)Se precisaria fazer um teste unitário, é preciso saber da implementação do método "cadastrar", saber que tem o método "salvar" dentro dele? Se não souber disso não tem como fazer o teste unitário pois não tem como adivinhar q o método "salvar" está dentro?