Preciso urgentemente criar um teste unitário pra testar essa função envioPagarMe. Pra isso to usando Jasmine e coloquei num .json um caso que já testamos e foi resolvido pela promise, mas to com muito problema pra estruturar o teste, por que não sei como gerar a condição de aprovação apropriadamente. No momento, estou tentando resolver a promise e devolver um true se for resolvida e false se foi rejeitada, mas rodando os testes recebo:
1) Teste do model envioPagarMe deve funcionar o caso teste 'aprovado'
Message:
Expected [object Promise] to equal true.
Stack:
Error: Expected [object Promise] to equal true.
Meus códigos:
envioPagarMe.js:
const pagarme = require("pagarme");
const log = require("./log");
function envioPagarMe(obj) {
return new Promise(function (resolve, reject) {
pagarme.client
.connect({ api_key: "###" })
.then((client) => client.transactions.create(obj))
.then((transaction) => {
log.info("transacao gerada.");
resolve(transaction);
})
.catch((error) => {
log.error(error.response.errors);
reject(error);
});
});
}
module.exports = { envioPagarMe };
transactionSpec.js:
var { envioPagarMe } = require("../src/models/envioPagarMe");
var objAprovado = require("../spec/data/objAprovado.json");
var casoAprovado = new Promise((resolve, reject) => {
envioPagarMe(objAprovado)
.then((ok) => {
return true;
})
.catch((err) => {
return false;
});
});
//var casoReprovado = await envioPagarMe(objReprovado);
describe("Teste do model envioPagarMe", () => {
it("deve funcionar o caso teste 'aprovado'", () => {
expect(casoAprovado).toEqual(true);
});
});