mangopay2-nodejs-sdk
Version:
Mangopay Node.js SDK
144 lines (126 loc) • 5.01 kB
JavaScript
var _ = require('underscore');
var expect = require('chai').expect;
var api = require('../main');
var helpers = require('../helpers');
describe('Events', function() {
var john = helpers.data.getUserNatural();
before(function(done){
api.Users.create(john, function(){
done();
});
});
describe('Get Events List', function () {
describe('Payin Normal Created', function () {
var payIn, events;
before(function(done) {
helpers.getNewPayInCardWeb(api, john, function(data, response){
payIn = data;
api.Events.getAll(function(data, response){
events = data;
done();
}, {
parameters: {
BeforeDate: payIn.CreationDate+10,
AfterDate: payIn.CreationDate-10,
EventType: 'PAYIN_NORMAL_CREATED'
}
})
});
});
it('should find created event', function () {
expect(events.length).to.be.above(0);
expect(_.findWhere(events, {ResourceId: payIn.Id})).to.exist;
});
});
describe('Payin Normal Succeeded', function () {
var payIn, events;
before(function(done) {
helpers.getNewPayInCardDirect(api, john, function(data, response){
payIn = data;
api.Events.getAll(function(data, response){
events = data;
done();
}, {
parameters: {
BeforeDate: payIn.ExecutionDate+10,
AfterDate: payIn.CreationDate-10,
EventType: 'PAYIN_NORMAL_SUCCEEDED'
}
})
});
});
it('should find succeeded event', function () {
expect(events.length).to.be.above(0);
expect(_.findWhere(events, {ResourceId: payIn.Id})).to.exist;
});
});
describe('Payout Normal Created', function () {
var payOut, events;
before(function(done) {
helpers.getNewPayoutBankWire(api, john, async function (data, response) {
payOut = data;
// wait 2 seconds for the transactions to be created by the API
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
await delay(2000);
api.Events.getAll(function (data, response) {
events = data;
done();
}, {
parameters: {
BeforeDate: payOut.CreationDate + 10,
AfterDate: payOut.CreationDate - 10,
EventType: 'PAYOUT_NORMAL_CREATED'
}
})
});
});
it('should find payout created event', function () {
expect(events.length).to.be.above(0);
expect(_.findWhere(events, {ResourceId: payOut.Id})).to.exist;
});
});
});
describe('Get KYC Documents', function () {
var kycDocument, events;
before(function(done){
api.Users.createKycDocument(john.Id, {
Status: 'CREATED',
Type: 'IDENTITY_PROOF'
}).then(function(document){
kycDocument = document;
api.Events.getAll(function(data, response){
events = data;
done();
}, {
parameters: {
BeforeDate: kycDocument.CreationDate+10,
AfterDate: kycDocument.CreationDate-10,
EventType: 'KYC_CREATED'
}
});
});
});
it('should find KYC Document event', function () {
expect(events.length).to.be.above(0);
expect(_.findWhere(events, {ResourceId: kycDocument.Id})).to.exist;
});
});
// TODO: Remove the .skip() call once Get Events endpoint is fixed on the server.
describe.skip('Get All Sort By Creation Date', function () {
var events;
before(function(done){
api.Events.getAll(function(data, response){
events = data;
done();
}, {
parameters: {
Sort: 'CreationDate:asc'
}
});
});
it('should return events sorted', function () {
expect(events.length).to.be.above(0);
expect(events[1].Date).to.be.above(events[0].Date);
});
});
});