it('should throw ZendeskRequestError error on fail', async () => {
mockZendeskClient.request.mockRejectedValueOnce({
status: 400,
responseJSON: { message: 'Request failed' }
});
const auth = new BearerAuthZendesk({
zafClient: mockZendeskClient,
baseUrl: 'http://localhost',
endpoint: '/auth',
bearer: {
headers: {
Authorization: 'Basic 123'
}
}
});
try {
await auth.getToken();
} catch (error) {
expect(error.message).toEqual('Request failed');
}
});
it('should throw ZendeskRequestError error on fail', async () => {
mockZendeskClient.request.mockRejectedValueOnce({
status: 400,
responseJSON: { message: 'Request failed' }
});
const auth = new BearerAuthZendesk({
zafClient: mockZendeskClient,
baseUrl: 'http://localhost',
endpoint: '/auth',
bearer: {
headers: {
Authorization: 'Basic 123'
}
}
});
await expect(auth.getToken()).rejects.toEqual({
message: 'Request failed',
status: 400
});
});
Discussed in #82
Originally posted by andaraGui August 2, 2024
Hoje os teses de erro do pacote estão no seguinte modelo:
Como mencionado pelo @gabrielh-silvestre nesse PR, realizar o teste utilizando o bloco try/catch pode ocasionar que o teste de cenário não valide o erro, caso não haja o mesmo.
Utilizando o cenário acima, caso a função auth.getToken() não retorne um erro, o teste irá passar da mesma maneira, sendo que o intuito do mesmo é justamente testar um cenário em que se espera que dê erro.
A sujestão de refatoração segue o seguinte modelo: