57 lines
1.8 KiB
JavaScript
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);
|
|
});
|
|
});
|