[FEATURE] Add tests and support for ledger for requestBookOffers

This commit is contained in:
Alan Cohen
2014-12-19 16:20:05 -08:00
parent 3cb4a64b47
commit 34c0677c45
2 changed files with 49 additions and 5 deletions

View File

@@ -1476,10 +1476,12 @@ Remote.prototype.requestTxHistory = function(start, callback) {
/** /**
* Request book_offers * Request book_offers
* *
* @param {Object} gets * @param {Object} options - taker_options or can be an options object with the following properties
* @param {Object} pays * @param {Object} options.gets - taker_options
* @param {String} taker * @param {Object} options.pays - taker_pays
* @param [Function] calback * @param {String} [options.taker]
* @param {String} [options.ledger]
* @param [Function] callback
* @return {Request} * @return {Request}
*/ */
@@ -1488,6 +1490,7 @@ Remote.prototype.requestBookOffers = function(gets, pays, taker, callback) {
if (gets.hasOwnProperty('gets') || gets.hasOwnProperty('taker_gets')) { if (gets.hasOwnProperty('gets') || gets.hasOwnProperty('taker_gets')) {
var options = gets; var options = gets;
var ledger;
// This would mutate the `lastArg` in `arguments` to be `null` and is // This would mutate the `lastArg` in `arguments` to be `null` and is
// redundant. Once upon a time, some awkward code was written f(g, null, // redundant. Once upon a time, some awkward code was written f(g, null,
// null, cb) ... // null, cb) ...
@@ -1495,6 +1498,7 @@ Remote.prototype.requestBookOffers = function(gets, pays, taker, callback) {
taker = options.taker; taker = options.taker;
pays = options.pays || options.taker_pays; pays = options.pays || options.taker_pays;
gets = options.gets || options.taker_gets; gets = options.gets || options.taker_gets;
ledger = options.ledger;
} }
if (typeof lastArg === 'function') { if (typeof lastArg === 'function') {
@@ -1521,8 +1525,9 @@ Remote.prototype.requestBookOffers = function(gets, pays, taker, callback) {
request.message.taker = taker ? taker : UInt160.ACCOUNT_ONE; request.message.taker = taker ? taker : UInt160.ACCOUNT_ONE;
request.callback(callback); request.ledgerSelect(ledger);
request.callback(callback);
return request; return request;
}; };

View File

@@ -2,6 +2,8 @@ var assert = require('assert');
var Remote = require('ripple-lib').Remote; var Remote = require('ripple-lib').Remote;
var Server = require('ripple-lib').Server; var Server = require('ripple-lib').Server;
var Request = require('ripple-lib').Request; var Request = require('ripple-lib').Request;
var UInt160 = require('ripple-lib').UInt160;
var Currency = require('ripple-lib').Currency;
var options, remote, callback, database, tx; var options, remote, callback, database, tx;
@@ -434,6 +436,43 @@ describe('Remote', function () {
assert(request.requested); assert(request.requested);
}); });
it('requestBookOffers, ledger', function() {
var callback = function() {};
var remote = new Remote({
servers: [ { host: 's-west.ripple.com', port: 443, secure: true } ]
});
var request = remote.requestBookOffers(
{
gets: {
currency: 'USD',
issuer: ADDRESS
},
pays: {
currency: 'XRP'
},
ledger: LEDGER_HASH
},
callback
);
assert.deepEqual(request.message, {
command: 'book_offers',
id: undefined,
taker_gets: {
currency: Currency.from_human('USD').to_hex(),
issuer: ADDRESS
},
taker_pays: {
currency: '0000000000000000000000000000000000000000'
},
taker: UInt160.ACCOUNT_ONE,
ledger_hash: LEDGER_HASH
});
assert(request.requested);
});
it('create remote and get pending transactions', function() { it('create remote and get pending transactions', function() {
before(function() { before(function() {
tx = [{ tx = [{