Make fiat balance test use new Trader API
Leave out the trading part for now since nobody is using this feature in production.
This commit is contained in:
parent
06242fe78a
commit
206b33ec38
2 changed files with 48 additions and 57 deletions
|
|
@ -1,57 +0,0 @@
|
|||
'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);
|
||||
});
|
||||
});
|
||||
48
test/unit/traderFiatBalanceTest.js
Normal file
48
test/unit/traderFiatBalanceTest.js
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
'use strict';
|
||||
|
||||
var assert = require('chai').assert;
|
||||
var Trader = require('../../lib/trader.js');
|
||||
var PostgresqlInterface = require('../../lib/protocol/db/postgresql_interface.js');
|
||||
|
||||
var db = 'psql://lamassu:lamassu@localhost/lamassu-test';
|
||||
var psqlInterface = new PostgresqlInterface(db);
|
||||
|
||||
var RATE = 100;
|
||||
var CURRENCY = 'USD';
|
||||
var SATOSHI_FACTOR = Math.pow(10, 8);
|
||||
var LOW_BALANCE_MARGIN = 1.2;
|
||||
var COMMISSION = 1.1;
|
||||
|
||||
var settings = {
|
||||
currency: CURRENCY,
|
||||
lowBalanceMargin: LOW_BALANCE_MARGIN,
|
||||
commission: COMMISSION
|
||||
};
|
||||
|
||||
describe('trader/fiatBalance', function() {
|
||||
it('should calculate balance correctly with transfer exchange only', function() {
|
||||
var trader = new Trader(db);
|
||||
trader.configure({
|
||||
exchanges: {
|
||||
plugins: {
|
||||
current: {
|
||||
transfer: 'blockchain',
|
||||
ticker: 'bitpay'
|
||||
},
|
||||
settings: { blockchain: {}, bitpay: {} }
|
||||
},
|
||||
settings: settings
|
||||
}
|
||||
});
|
||||
|
||||
// We have 2 bitcoins, want to trade 1 bitcoin for 100 fiat
|
||||
trader.balance = {
|
||||
transferBalance: 2 * SATOSHI_FACTOR,
|
||||
tradeBalance: null
|
||||
};
|
||||
trader.rates[CURRENCY] = { rate: RATE };
|
||||
|
||||
var balance = trader.fiatBalance(1 * SATOSHI_FACTOR, 100);
|
||||
assert.equal(balance, (100 / LOW_BALANCE_MARGIN) * COMMISSION);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue