wallets-africa
Version:
Nodejs API wrapper for wallets africa
122 lines (121 loc) • 3.83 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = __importDefault(require("../index"));
const chai_1 = require("chai");
const faker_1 = __importDefault(require("faker"));
/*
Self resource tests file
*/
// The key is supplied from package.json under the scripts command
const walletAfrica = new index_1.default({
secretKey: process.env.SECRET_KEY,
publicKey: process.env.PUBLIC_KEY,
sandbox: true,
});
const phone1 = '08099999999';
const phone2 = '08099999999';
const transactionPin = '1111';
let expData = {
FirstName: '',
LastName: '',
Email: '',
PhoneNumber: '',
BVN: '',
Password: '',
DateOfBirth: '',
DateSignedup: '',
AccountNo: '',
Bank: '',
AccountName: '',
AvailableBalance: 0,
};
describe('Wallet resource tests', function () {
it('Create', async function () {
const res = await walletAfrica.wallet.create({
dateOfBirth: '22-08-1923',
email: faker_1.default.internet.email(),
firstName: faker_1.default.name.firstName(),
lastName: faker_1.default.name.lastName(),
password: 'anything',
phoneNumber: phone1,
});
chai_1.assert.strictEqual(res.status, 200);
chai_1.assert.containsAllDeepKeys(res.data, {
Response: {
ResponseCode: '200',
},
Data: expData,
});
// Assign response to expected data
// So we can reuse contents for other tests
expData = res.data.DATA;
});
it('Debit', async function () {
try {
const res = await walletAfrica.wallet.debit({
transactionReference: Date.now(),
amount: 100,
phoneNumber: phone1,
});
chai_1.assert.equal(res.status, 200);
}
catch (err) {
if (err.response) {
const res = err.response;
chai_1.assert.deepEqual(res.data.Response, {
ResponseCode: '400',
Message: 'Insufficient Funds',
});
}
else {
throw err;
}
}
});
it('Credit', async function () {
try {
const res = await walletAfrica.wallet.credit({
transactionReference: Date.now(),
amount: 100,
phoneNumber: phone1,
});
chai_1.assert.strictEqual(res.status, 200);
chai_1.assert.containsAllDeepKeys(res.data, {
Response: {
ResponseCode: '200',
},
});
}
catch (err) {
if (err.response) {
const res = err.response;
chai_1.assert.deepEqual(res.data.Response, {
ResponseCode: '400',
Message: 'Insufficient Funds',
});
}
else {
throw err;
}
}
});
it('Generate', async function () {
const res = await walletAfrica.wallet.generate({
dateOfBirth: faker_1.default.date.past(),
email: faker_1.default.internet.email(),
firstName: faker_1.default.name.firstName(),
lastName: faker_1.default.name.lastName(),
password: faker_1.default.name.firstName(),
phoneNumber: phone2,
});
chai_1.assert.strictEqual(res.status, 200);
chai_1.assert.containsAllDeepKeys(res.data, {
Response: {
ResponseCode: '200',
},
});
});
});