test(server): Initial set of tests and travis integration added

This commit is contained in:
Damian Mee 2014-09-03 19:38:48 +02:00
parent f06ace8c83
commit 53646c9191
17 changed files with 400 additions and 458 deletions

14
test/mocks/config.js Normal file
View file

@ -0,0 +1,14 @@
'use strict';
var LamassuConfig = module.exports = function (conString, pairingTokenTTL) {
};
LamassuConfig.prototype.load = function load() {
};
LamassuConfig.prototype.on = function on() {
};
LamassuConfig.prototype.isAuthorized = function isAuthorized(fingerprint, cb) {
cb(null, true);
};

44
test/mocks/db.js Normal file
View file

@ -0,0 +1,44 @@
'use strict';
var FINGERPRINT_NEW = 'XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX';
var FINGERPRINT_FUNDS = 'YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY';
var txs = {};
module.exports = {
FINGERPRINT_NEW: FINGERPRINT_NEW,
FINGERPRINT_FUNDS: FINGERPRINT_FUNDS,
summonTransaction: function(fingerprint, tx, cb) {
var cachedTx = txs[tx.txId];
if (cachedTx) cb(null, cachedTx);
else {
txs[tx.txId] = tx;
cb(null, null);
}
},
reportTransactionError: function(tx, err, status) {
txs[tx.txId].err = err;
txs[tx.txId].status = status;
calls.fail = true;
},
completeTransaction: function(tx, txHash) {
calls.status = true;
}
};
var calls = {};
module.exports.wasErrorReported = function() {
return calls.fail;
};
module.exports.wasStatusReported = function() {
return calls.status;
};
module.exports.resetCalls = function() {
calls = {
status: false,
fail: false
}
};
module.exports.resetCalls();

5
test/mocks/plugins.js Normal file
View file

@ -0,0 +1,5 @@
'use strict';
exports.init = function init () {
};

4
test/mocks/psql.js Normal file
View file

@ -0,0 +1,4 @@
'use strict';
var PostgresqlInterface = module.exports = function (conString) {
};

View file

@ -4,11 +4,9 @@ module.exports = {
SUPPORTED_MODULES: [ 'ticker' ],
NAME: 'Mock Ticker',
tickerCalls: 0,
config: function() {},
ticker: function(currency, callback) {
this.tickerCalls++;
config: function config() {},
ticker: function ticker(currency, callback) {
tickerCalls++;
var out = {};
out[currency] = {
@ -21,3 +19,10 @@ module.exports = {
callback(null, out);
}
};
// mock stuff
var tickerCalls = 0;
module.exports.getTickerCalls = function() {
return tickerCalls;
}

View file

@ -4,8 +4,8 @@ module.exports = {
SUPPORTED_MODULES: ['trader'],
NAME: 'Mock Trader',
config: function() {},
balance: function() {},
purchase: function() {},
sell: function() {}
config: function config() {},
balance: function balance() {},
purchase: function purchase() {},
sell: function sell() {}
};

View file

@ -4,7 +4,7 @@ module.exports = {
SUPPORTED_MODULES: ['idVerifier'],
NAME: 'Mock Verifier',
config: function() {},
verifyUser: function() {},
verifyTransaction: function() {}
config: function config() {},
verifyUser: function verifyUser() {},
verifyTransaction: function verifyTransaction() {}
};

View file

@ -4,7 +4,40 @@ module.exports = {
SUPPORTED_MODULES: ['wallet'],
NAME: 'Mock Wallet',
config: function() {},
balance: function() {},
sendBitcoins: function() {}
config: function config() {},
balance: function balance(callback) {
calls.balance++;
callback(null, {
BTC: 1e8
});
},
sendBitcoins: function(addr, satoshis, fee, cb) {
calls.send = true;
if (satoshis <= 1e8) cb(null, TX_HASH);
else {
var e = new Error('Insufficient funds');
e.name = 'InsufficientFunds';
cb(e);
}
}
};
// mock stuff
var calls = {
balance: 0,
send: false
};
var ADDR = module.exports.ADDR = '12sENwECeRSmTeDwyLNqwh47JistZqFmW8';
var TX_HASH = module.exports.TX_HASH = '1c12443203a48f42cdf7b1acee5b4b1c1fedc144cb909a3bf5edbffafb0cd204';
module.exports.getBalanceCalls = function() {
return calls.balance;
};
module.exports.wasSendCalled = function() {
return calls.send;
}