lamassu-server/test/fiatBalanceTest.js
Maciej Małecki 016f1351bd Move tests
2014-04-11 01:14:28 +02:00

57 lines
1.8 KiB
JavaScript

'use strict';
var assert = require('chai').assert;
var LamassuConfig = require('lamassu-config');
var con = 'psql://lamassu:lamassu@localhost/lamassu';
var config = new LamassuConfig(con);
var api = require('../lib/protocol/api/api.js');
var RATE = 100;
var SATOSHI_FACTOR = Math.pow(10, 8);
var cfg;
describe('fiatBalance test', function() {
before(function(done) {
config.load(function(err, result) {
assert.isNull(err);
cfg = result.exchanges;
api.init(cfg);
done();
});
});
after(function(done) {
config.end();
done();
});
it('should calculate balance correctly with transfer exchange only', function() {
// We have 2 bitcoins, want to trade 1 bitcoin for 100 fiat
var balance = api.fiatBalance(RATE / cfg.settings.commission, {
transferBalance: 2 * SATOSHI_FACTOR,
tradeBalance: null
}, 1 * SATOSHI_FACTOR, 100);
assert.equal(balance, 100 / cfg.settings.lowBalanceMargin);
});
it('should calculate balance correctly with both exchanges (trade > transfer)', function() {
// We have 2 bitcoins for transfer, 2000 fiat for trade, want to trade 1
// bitcoin for 100 fiat
var balance = api.fiatBalance(RATE / cfg.settings.commission, {
transferBalance: 2 * SATOSHI_FACTOR,
tradeBalance: 2000
}, 1 * SATOSHI_FACTOR, 100);
assert.equal(balance, 100 / cfg.settings.lowBalanceMargin);
});
it('should calculate balance correctly with both exchanges (transfer > trade)', function() {
// We have 2 bitcoins for transfer, 150 fiat for trade, want to trade 1
// bitcoin for 100 fiat
var balance = api.fiatBalance(RATE / cfg.settings.commission, {
transferBalance: 2 * SATOSHI_FACTOR,
tradeBalance: 150
}, 1 * SATOSHI_FACTOR, 100);
assert.equal(balance, 50 / cfg.settings.lowBalanceMargin);
});
});