Skip to content

Commit

Permalink
added more tests for accounts. Fixed bug around passing BankAccountNu…
Browse files Browse the repository at this point in the history
…mbers. TODO: Delete method hasn't been implemented globally.
  • Loading branch information
Jordan Walsh committed Feb 16, 2017
1 parent 0497a8a commit 17ed660
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 50 deletions.
3 changes: 3 additions & 0 deletions lib/application.js
Expand Up @@ -26,6 +26,9 @@ _.extend(Batch.prototype, {
},
put: function() {

},
delete: function() {

},
addOperation: function(operation) {
this._operations.push(operation);
Expand Down
2 changes: 1 addition & 1 deletion lib/entities/account.js
Expand Up @@ -15,7 +15,7 @@ var AccountSchema = new Entity.SchemaObject({
ReportingCode: { type: String, toObject: 'never' },
Status: { type: String, toObject: 'never' },
SystemAccount: { type: String, toObject: 'never' },
BankAccountNumber: { type: String, toObject: 'never' },
BankAccountNumber: { type: String, toObject: 'always' },
CurrencyCode: { type: String, toObject: 'never' },
ReportingCode: { type: String, toObject: 'never' },
ReportingCodeName: { type: String, toObject: 'never' },
Expand Down
43 changes: 20 additions & 23 deletions lib/entity_helpers/entity_helper.js
@@ -1,12 +1,11 @@
var logger = require('../logger')
, extend = require('../misc/extend')
, _ = require('lodash')
, promise = require('../misc/promise')
, util = require('util')
, qs = require('querystring')

function EntityHelper(application, options)
{
var logger = require('../logger'),
extend = require('../misc/extend'),
_ = require('lodash'),
promise = require('../misc/promise'),
util = require('util'),
qs = require('querystring')

function EntityHelper(application, options) {
var self = this;
logger.debug('EntityHelper::constructor');
this._application = application;
Expand All @@ -21,22 +20,21 @@ function EntityHelper(application, options)
EntityHelper.extend = extend;

_.extend(EntityHelper.prototype, {
saveEntities: function(entities,options )
{
saveEntities: function(entities, options) {
logger.debug('EntityHelper::saveEntities');
options = options || {};
if (!_.isArray(entities))
entities = [entities];

var entitiesXml = _.map(entities, function(entitiy)
{
var entitiesXml = _.map(entities, function(entitiy) {
return entitiy.toXml();
}).join('');

var xml = '<' + this._options.entityPlural + '>' + entitiesXml + '</' + this._options.entityPlural +'>';
return this.application.putOrPostPostEntities(options.method || 'put',this._options.entityPlural,xml,options);
var xml = '<' + this._options.entityPlural + '>' + entitiesXml + '</' + this._options.entityPlural + '>';
return this.application.putOrPostPostEntities(options.method || 'put', this._options.entityPlural, xml, options);
},
getEntities: function (options)
{
getEntities: function(options) {
logger.debug('EntityHelper::getEntities');
var self = this;
options = options || {};
var path = options.path || this._options.path || this._options.entityPlural;
Expand All @@ -46,11 +44,12 @@ _.extend(EntityHelper.prototype, {
var clonedOptions = _.clone(options || {});
clonedOptions.entityPath = this._options.entityPlural;
if (this._options.entityName)
clonedOptions.entityPath += '.' + this._options.entityName;
clonedOptions.entityPath += '.' + this._options.entityName;

logger.debug('EntityHelper::getEntities - retrieving entites from: ' + path);
return this.application.getEntities(path, clonedOptions);
},
streamEntity: function(options)
{
streamEntity: function(options) {
options = options || {};
var path = options.path || this._options.entityPlural;
path += '/' + options.id;
Expand All @@ -59,6 +58,4 @@ _.extend(EntityHelper.prototype, {
}

})
module.exports = EntityHelper;


module.exports = EntityHelper;
2 changes: 1 addition & 1 deletion lib/index.js
Expand Up @@ -28,4 +28,4 @@ function init(options) {
})
}

init({ log: { level: 'error', toConsole: false } });
init({ log: { level: 'debug', toConsole: false } });
102 changes: 77 additions & 25 deletions test/tests.js
Expand Up @@ -72,7 +72,7 @@ describe('private application', function() {
var accountStatusCodes = ["ACTIVE", "ARCHIVED"];
var bankAccountTypes = ["BANK", "CREDITCARD", "PAYPAL"];

it('GET', function(done) {
it('GET ALL', function(done) {
this.timeout(10000);
currentApp.core.accounts.getAccounts()
.then(function(accounts) {
Expand Down Expand Up @@ -159,41 +159,93 @@ describe('private application', function() {
//Get it, Update it, then delete it

var testAccountId = "";
var testAccountData = {
Code: 'TEST',
Name: 'Test account from Node SDK',
Type: 'EXPENSE'
};

it('POST', function(done) {
it('CREATE ONE', function(done) {
this.timeout(10000);

var testAccountData = {
Code: 'TEST',
Name: 'Test account from Node SDK',
Type: 'BANK',
BankAccountNumber: '083091160475048'
};

var account = currentApp.core.accounts.newAccount(testAccountData);

account.save()
.then(function(ret) {
expect(ret.Code).to.equal(testAccountData.Code);
expect(ret.Name).to.equal(testAccountData.Name);
expect(ret.Type).to.equal(testAccountData.Type);
expect(ret.BankAccountNumber).to.equal(testAccountData.BankAccountNumber);
expect(ret.Status).to.equal(testAccountData.Status);
expect(ret.Description).to.equal(testAccountData.Description);
expect(ret.BankAccountType).to.equal(testAccountData.BankAccountType);
expect(ret.CurrencyCode).to.equal(testAccountData.CurrencyCode);
expect(ret.TaxType).to.equal(testAccountData.TaxType);
expect(ret.EnablePaymentsToAccount).to.equal(testAccountData.EnablePaymentsToAccount);
expect(ret.ShowInExpenseClaims).to.equal(testAccountData.ShowInExpenseClaims);

expect(ret.AccountID).to.not.equal("");
testAccountId = ret.AccountID;
var thisAccount = ret.response.Accounts.Account;
expect(thisAccount.Code).to.equal(testAccountData.Code);
expect(thisAccount.Name).to.equal(testAccountData.Name);
expect(thisAccount.Type).to.equal(testAccountData.Type);
expect(thisAccount.BankAccountNumber).to.equal(testAccountData.BankAccountNumber);
//expect(thisAccount.Status).to.equal(testAccountData.Status);
//expect(thisAccount.Description).to.equal(testAccountData.Description);
expect(thisAccount.BankAccountType).to.equal(testAccountData.BankAccountType);
//expect(thisAccount.CurrencyCode).to.equal(testAccountData.CurrencyCode);
//expect(thisAccount.TaxType).to.equal(testAccountData.TaxType);
//expect(thisAccount.EnablePaymentsToAccount).to.equal(testAccountData.EnablePaymentsToAccount);
//expect(thisAccount.ShowInExpenseClaims).to.equal(testAccountData.ShowInExpenseClaims);

expect(thisAccount.AccountID).to.not.equal("");
testAccountId = thisAccount.AccountID;

console.log("Created Acct ID: " + testAccountId);
done();
})
.fail(function(err) {
console.log(util.inspect(err, null, null));
done(wrapError(err));
});
});

it('GET ONE', function(done) {
this.timeout(10000);
currentApp.core.accounts.getAccount(testAccountId)
.then(function(account) {
expect(account.Code).to.equal(testAccountData.Code);
expect(account.Name).to.equal(testAccountData.Name);
expect(account.Type).to.equal(testAccountData.Type);
expect(account.BankAccountNumber).to.equal(testAccountData.BankAccountNumber);
//expect(account.Status).to.equal(testAccountData.Status);
//expect(account.Description).to.equal(testAccountData.Description);
expect(account.BankAccountType).to.equal(testAccountData.BankAccountType);
//expect(account.CurrencyCode).to.equal(testAccountData.CurrencyCode);
//expect(account.TaxType).to.equal(testAccountData.TaxType);
//expect(account.EnablePaymentsToAccount).to.equal(testAccountData.EnablePaymentsToAccount);
//expect(account.ShowInExpenseClaims).to.equal(testAccountData.ShowInExpenseClaims);

expect(account.AccountID).to.not.equal("");
done();
})
})
.fail(function(err) {
console.log(util.inspect(err, null, null));
done(wrapError(err));
});

});

it('UPDATE ONE', function(done) {
this.timeout(10000);
currentApp.core.accounts.getAccount(testAccountId)
.then(function(account) {
testAccountData.Name = "Updated from the SDK";
account.Name = testAccountData.Name;

account.save()
.then(function(ret) {
var thisAccount = ret.response.Accounts.Account;
expect(thisAccount.Name).to.equal(testAccountData.Name);
done();
})
.fail(function(err) {
console.log(util.inspect(err, null, null));
done(wrapError(err));
});
})
.fail(function(err) {
console.log(util.inspect(err, null, null));
done(wrapError(err));
});
});

});

/**
Expand Down

0 comments on commit 17ed660

Please sign in to comment.