Move tests
This commit is contained in:
parent
f376e96ab2
commit
016f1351bd
10 changed files with 517 additions and 0 deletions
119
test/api/tickerTest.js
Normal file
119
test/api/tickerTest.js
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
/*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var hock = require('hock');
|
||||
var async = require('async');
|
||||
var createServer = require('../helpers/create-https-server.js');
|
||||
var assert = require('chai').assert;
|
||||
|
||||
var LamassuConfig = require('lamassu-config');
|
||||
var con = 'psql://lamassu:lamassu@localhost/lamassu';
|
||||
var config = new LamassuConfig(con);
|
||||
|
||||
var cfg;
|
||||
|
||||
var blockchainMock = hock.createHock();
|
||||
var bitpayMock = hock.createHock();
|
||||
|
||||
var jsonquest = require('jsonquest');
|
||||
var express = require('express');
|
||||
var app = express();
|
||||
var testPort = 4000;
|
||||
|
||||
|
||||
|
||||
describe('ticker test', function(){
|
||||
|
||||
beforeEach(function(done) {
|
||||
|
||||
app.listen(testPort);
|
||||
|
||||
async.parallel({
|
||||
blockchain: async.apply(createServer, blockchainMock.handler),
|
||||
bitpay: async.apply(createServer, bitpayMock.handler),
|
||||
config: config.load.bind(config)
|
||||
}, function(err, results) {
|
||||
assert.isNull(err);
|
||||
|
||||
cfg = results.config.config;
|
||||
|
||||
cfg.exchanges.settings.commission = 1;
|
||||
|
||||
cfg.exchanges.plugins.current.ticker = 'bitpay';
|
||||
cfg.exchanges.plugins.current.trade = null;
|
||||
cfg.exchanges.plugins.settings.bitpay = {
|
||||
host: 'localhost',
|
||||
port: results.bitpay.address().port,
|
||||
rejectUnauthorized: false
|
||||
};
|
||||
|
||||
cfg.exchanges.plugins.current.transfer = 'blockchain';
|
||||
cfg.exchanges.plugins.settings.blockchain = {
|
||||
host: 'localhost',
|
||||
port: results.blockchain.address().port,
|
||||
rejectUnauthorized: false,
|
||||
password: 'baz',
|
||||
fromAddress: '1LhkU2R8nJaU8Zj6jB8VjWrMpvVKGqCZ64',
|
||||
guid: '3acf1633-db4d-44a9-9013-b13e85405404'
|
||||
};
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
it('should read ticker data from bitpay', function(done) {
|
||||
this.timeout(1000000);
|
||||
|
||||
bitpayMock
|
||||
.get('/api/rates')
|
||||
.reply(200, [
|
||||
{ code: 'EUR', rate: 1337 },
|
||||
{ code: 'USD', rate: 100 }
|
||||
]);
|
||||
|
||||
blockchainMock
|
||||
.get('/merchant/3acf1633-db4d-44a9-9013-b13e85405404/address_balance?address=1LhkU2R8nJaU8Zj6jB8VjWrMpvVKGqCZ64&confirmations=0&password=baz')
|
||||
.reply(200, { balance: 100000000, total_received: 100000000 })
|
||||
.get('/merchant/3acf1633-db4d-44a9-9013-b13e85405404/address_balance?address=1LhkU2R8nJaU8Zj6jB8VjWrMpvVKGqCZ64&confirmations=1&password=baz')
|
||||
.reply(200, { balance: 100000000, total_received: 100000000 });
|
||||
// That's 1 BTC.
|
||||
|
||||
var api = require('../../lib/atm-api');
|
||||
api.init(app, cfg);
|
||||
|
||||
// let ticker rate fetch finish...
|
||||
setTimeout(function() {
|
||||
jsonquest({
|
||||
host: 'localhost',
|
||||
port: testPort,
|
||||
path: '/poll/USD',//:currency
|
||||
method: 'GET',
|
||||
protocol: 'http'
|
||||
}, function (err, res, body) {
|
||||
assert.isNull(err);
|
||||
assert.equal(res.statusCode, 200);
|
||||
|
||||
assert.isNull(body.err);
|
||||
assert.equal(Number(body.rate) > 0, true);
|
||||
console.log(100 / cfg.exchanges.settings.lowBalanceMargin, body.fiat);
|
||||
assert.equal(body.fiat, 100 / cfg.exchanges.settings.lowBalanceMargin);
|
||||
|
||||
done();
|
||||
});
|
||||
}, 2000);
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue