diff --git a/test/fiatBalanceTest.js b/test/fiatBalanceTest.js deleted file mode 100644 index 6f436d40..00000000 --- a/test/fiatBalanceTest.js +++ /dev/null @@ -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); - }); -}); diff --git a/test/unit/traderFiatBalanceTest.js b/test/unit/traderFiatBalanceTest.js new file mode 100644 index 00000000..38752305 --- /dev/null +++ b/test/unit/traderFiatBalanceTest.js @@ -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); + }); +});