mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 20:25:48 +00:00
Organize fixtures
This commit is contained in:
@@ -3,41 +3,13 @@
|
||||
const _ = require('lodash');
|
||||
const assert = require('assert-diff');
|
||||
const setupAPI = require('./setup-api');
|
||||
const fixtures = require('./fixtures/api');
|
||||
const requests = fixtures.requests;
|
||||
const responses = fixtures.responses;
|
||||
const addresses = require('./fixtures/addresses');
|
||||
const hashes = require('./fixtures/hashes');
|
||||
const paymentSpecification = require('./fixtures/payment-specification');
|
||||
const paymentResponse = require('./fixtures/payment-response');
|
||||
const orderSpecification = require('./fixtures/order-specification');
|
||||
const orderResponse = require('./fixtures/order-response');
|
||||
const trustlineSpecification =
|
||||
require('./fixtures/trustline-specification');
|
||||
const trustlineResponse = require('./fixtures/trustline-response');
|
||||
const balancesResponse = require('./fixtures/balances-response');
|
||||
const orderCancellationResponse =
|
||||
require('./fixtures/ordercancellation-response');
|
||||
const settingsSpecification = require('./fixtures/settings-specification');
|
||||
const settingsResponse = require('./fixtures/settings-response');
|
||||
const getAccountInfoResponse = require('./fixtures/account-info-response');
|
||||
const regularKeyResponse = require('./fixtures/regular-key-response');
|
||||
const signInput = require('./fixtures/sign-input');
|
||||
const signOutput = require('./fixtures/sign-output');
|
||||
const MockPRNG = require('./mock-prng');
|
||||
const sjcl = require('../src').sjcl;
|
||||
const submitResponse = require('./fixtures/submit-response');
|
||||
const transactionResponse = require('./fixtures/transaction-response');
|
||||
const accountTransactionsResponse =
|
||||
require('./fixtures/account-transactions-response');
|
||||
const trustlinesResponse = require('./fixtures/trustlines-response');
|
||||
const walletResponse = require('./fixtures/wallet.json');
|
||||
const getSettingsResponse = require('./fixtures/get-settings-response');
|
||||
const getOrdersResponse = require('./fixtures/get-orders-response');
|
||||
const getOrderbookResponse = require('./fixtures/get-orderbook-response');
|
||||
const getServerInfoResponse = require('./fixtures/get-server-info-response');
|
||||
const getPathsResponse = require('./fixtures/get-paths-response');
|
||||
const settingsTransactionResponse = require('./fixtures/settings-tx-response');
|
||||
const orderTransactionResponse = require('./fixtures/responses/order');
|
||||
const orderCancellationTransactionResponse =
|
||||
require('./fixtures/responses/order-cancellation');
|
||||
const address = addresses.ACCOUNT;
|
||||
|
||||
const orderbook = {
|
||||
@@ -74,84 +46,84 @@ describe('RippleAPI', function() {
|
||||
afterEach(setupAPI.teardown);
|
||||
|
||||
it('preparePayment', function(done) {
|
||||
this.api.preparePayment(address, paymentSpecification, instructions,
|
||||
_.partial(checkResult, paymentResponse, done));
|
||||
this.api.preparePayment(address, requests.preparePayment, instructions,
|
||||
_.partial(checkResult, responses.preparePayment, done));
|
||||
});
|
||||
|
||||
it('prepareOrder', function(done) {
|
||||
this.api.prepareOrder(address, orderSpecification, instructions,
|
||||
_.partial(checkResult, orderResponse, done));
|
||||
this.api.prepareOrder(address, requests.prepareOrder, instructions,
|
||||
_.partial(checkResult, responses.prepareOrder, done));
|
||||
});
|
||||
|
||||
it('prepareOrderCancellation', function(done) {
|
||||
this.api.prepareOrderCancellation(address, 23, instructions,
|
||||
_.partial(checkResult, orderCancellationResponse, done));
|
||||
_.partial(checkResult, responses.prepareOrderCancellation, done));
|
||||
});
|
||||
|
||||
it('prepareTrustline', function(done) {
|
||||
this.api.prepareTrustline(address, trustlineSpecification,
|
||||
instructions, _.partial(checkResult, trustlineResponse, done));
|
||||
this.api.prepareTrustline(address, requests.prepareTrustline,
|
||||
instructions, _.partial(checkResult, responses.prepareTrustline, done));
|
||||
});
|
||||
|
||||
it('prepareSettings', function(done) {
|
||||
this.api.prepareSettings(address, settingsSpecification,
|
||||
instructions, _.partial(checkResult, settingsResponse, done));
|
||||
this.api.prepareSettings(address, requests.prepareSettings, instructions,
|
||||
_.partial(checkResult, responses.prepareSettings.flags, done));
|
||||
});
|
||||
|
||||
it('prepareSettings - regularKey', function(done) {
|
||||
const regularKey = {regularKey: 'rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD'};
|
||||
this.api.prepareSettings(address, regularKey,
|
||||
instructions, _.partial(checkResult, regularKeyResponse, done));
|
||||
this.api.prepareSettings(address, regularKey, instructions,
|
||||
_.partial(checkResult, responses.prepareSettings.regularKey, done));
|
||||
});
|
||||
|
||||
it('sign', function() {
|
||||
const secret = 'shsWGZcmZz6YsWWmcnpfr6fLTdtFV';
|
||||
withDeterministicPRNG(() => {
|
||||
const result = this.api.sign(signInput, secret);
|
||||
assert.deepEqual(result, signOutput);
|
||||
const result = this.api.sign(requests.sign, secret);
|
||||
assert.deepEqual(result, responses.sign);
|
||||
});
|
||||
});
|
||||
|
||||
it('submit', function(done) {
|
||||
this.api.submit(signOutput.signedTransaction,
|
||||
_.partial(checkResult, submitResponse, done));
|
||||
this.api.submit(responses.sign.signedTransaction,
|
||||
_.partial(checkResult, responses.submit, done));
|
||||
});
|
||||
|
||||
it('getBalances', function(done) {
|
||||
this.api.getBalances(address, {},
|
||||
_.partial(checkResult, balancesResponse, done));
|
||||
_.partial(checkResult, responses.getBalances, done));
|
||||
});
|
||||
|
||||
it('getTransaction', function(done) {
|
||||
it('getTransaction - payment', function(done) {
|
||||
this.api.getTransaction(hashes.VALID_TRANSACTION_HASH, {},
|
||||
_.partial(checkResult, transactionResponse, done));
|
||||
_.partial(checkResult, responses.getTransaction.payment, done));
|
||||
});
|
||||
|
||||
it('getTransaction - settings', function(done) {
|
||||
const hash =
|
||||
'4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA1B';
|
||||
this.api.getTransaction(hash, {},
|
||||
_.partial(checkResult, settingsTransactionResponse, done));
|
||||
_.partial(checkResult, responses.getTransaction.settings, done));
|
||||
});
|
||||
|
||||
it('getTransaction - order', function(done) {
|
||||
const hash =
|
||||
'10A6FB4A66EE80BED46AAE4815D7DC43B97E944984CCD5B93BCF3F8538CABC51';
|
||||
this.api.getTransaction(hash, {},
|
||||
_.partial(checkResult, orderTransactionResponse, done));
|
||||
_.partial(checkResult, responses.getTransaction.order, done));
|
||||
});
|
||||
|
||||
it('getTransaction - order cancellation', function(done) {
|
||||
const hash =
|
||||
'809335DD3B0B333865096217AA2F55A4DF168E0198080B3A090D12D88880FF0E';
|
||||
this.api.getTransaction(hash, {},
|
||||
_.partial(checkResult, orderCancellationTransactionResponse, done));
|
||||
_.partial(checkResult, responses.getTransaction.orderCancellation, done));
|
||||
});
|
||||
|
||||
it('getTransactions', function(done) {
|
||||
const options = {types: ['payment', 'order'], outgoing: true, limit: 2};
|
||||
this.api.getTransactions(address, options,
|
||||
_.partial(checkResult, accountTransactionsResponse, done));
|
||||
_.partial(checkResult, responses.getTransactions, done));
|
||||
});
|
||||
|
||||
// TODO: this doesn't test much, just that it doesn't crash
|
||||
@@ -162,39 +134,39 @@ describe('RippleAPI', function() {
|
||||
limit: 2
|
||||
};
|
||||
this.api.getTransactions(address, options,
|
||||
_.partial(checkResult, accountTransactionsResponse, done));
|
||||
_.partial(checkResult, responses.getTransactions, done));
|
||||
});
|
||||
|
||||
it('getTrustlines', function(done) {
|
||||
const options = {currency: 'USD'};
|
||||
this.api.getTrustlines(address, options,
|
||||
_.partial(checkResult, trustlinesResponse, done));
|
||||
_.partial(checkResult, responses.getTrustlines, done));
|
||||
});
|
||||
|
||||
it('generateWallet', function() {
|
||||
withDeterministicPRNG(() => {
|
||||
assert.deepEqual(this.api.generateWallet(), walletResponse);
|
||||
assert.deepEqual(this.api.generateWallet(), responses.generateWallet);
|
||||
});
|
||||
});
|
||||
|
||||
it('getSettings', function(done) {
|
||||
this.api.getSettings(address, {},
|
||||
_.partial(checkResult, getSettingsResponse, done));
|
||||
_.partial(checkResult, responses.getSettings, done));
|
||||
});
|
||||
|
||||
it('getAccountInfo', function(done) {
|
||||
this.api.getAccountInfo(address, {},
|
||||
_.partial(checkResult, getAccountInfoResponse, done));
|
||||
_.partial(checkResult, responses.getAccountInfo, done));
|
||||
});
|
||||
|
||||
it('getOrders', function(done) {
|
||||
this.api.getOrders(address, {},
|
||||
_.partial(checkResult, getOrdersResponse, done));
|
||||
_.partial(checkResult, responses.getOrders, done));
|
||||
});
|
||||
|
||||
it('getOrderbook', function(done) {
|
||||
this.api.getOrderbook(address, orderbook, {},
|
||||
_.partial(checkResult, getOrderbookResponse, done));
|
||||
_.partial(checkResult, responses.getOrderbook, done));
|
||||
});
|
||||
|
||||
it('getOrderbook - sorted so that best deals come first', function(done) {
|
||||
@@ -235,7 +207,8 @@ describe('RippleAPI', function() {
|
||||
});
|
||||
|
||||
it('getServerInfo', function(done) {
|
||||
this.api.getServerInfo(_.partial(checkResult, getServerInfoResponse, done));
|
||||
this.api.getServerInfo(
|
||||
_.partial(checkResult, responses.getServerInfo, done));
|
||||
});
|
||||
|
||||
it('getFee', function() {
|
||||
@@ -265,7 +238,7 @@ describe('RippleAPI', function() {
|
||||
}
|
||||
};
|
||||
this.api.getPaths(pathfind,
|
||||
_.partial(checkResult, getPathsResponse, done));
|
||||
_.partial(checkResult, responses.getPaths, done));
|
||||
});
|
||||
|
||||
it('getLedgerVersion', function() {
|
||||
|
||||
7
test/fixtures/api/index.js
vendored
Normal file
7
test/fixtures/api/index.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
responses: require('./responses'),
|
||||
requests: require('./requests'),
|
||||
rippled: require('./rippled')
|
||||
};
|
||||
9
test/fixtures/api/requests/index.js
vendored
Normal file
9
test/fixtures/api/requests/index.js
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
prepareOrder: require('./prepare-order'),
|
||||
preparePayment: require('./prepare-payment'),
|
||||
prepareSettings: require('./prepare-settings'),
|
||||
prepareTrustline: require('./prepare-trustline'),
|
||||
sign: require('./sign')
|
||||
};
|
||||
30
test/fixtures/api/responses/index.js
vendored
Normal file
30
test/fixtures/api/responses/index.js
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
generateWallet: require('./generate-wallet.json'),
|
||||
getAccountInfo: require('./get-account-info.json'),
|
||||
getBalances: require('./get-balances.json'),
|
||||
getOrderbook: require('./get-orderbook.json'),
|
||||
getOrders: require('./get-orders.json'),
|
||||
getPaths: require('./get-paths.json'),
|
||||
getServerInfo: require('./get-server-info.json'),
|
||||
getSettings: require('./get-settings.json'),
|
||||
getTransaction: {
|
||||
orderCancellation: require('./get-transaction-order-cancellation.json'),
|
||||
order: require('./get-transaction-order.json'),
|
||||
payment: require('./get-transaction-payment.json'),
|
||||
settings: require('./get-transaction-settings.json')
|
||||
},
|
||||
getTransactions: require('./get-transactions.json'),
|
||||
getTrustlines: require('./get-trustlines.json'),
|
||||
prepareOrderCancellation: require('./prepare-order-cancellation.json'),
|
||||
prepareOrder: require('./prepare-order.json'),
|
||||
preparePayment: require('./prepare-payment.json'),
|
||||
prepareSettings: {
|
||||
regularKey: require('./prepare-settings-regular-key.json'),
|
||||
flags: require('./prepare-settings.json')
|
||||
},
|
||||
prepareTrustline: require('./prepare-trustline.json'),
|
||||
sign: require('./sign.json'),
|
||||
submit: require('./submit.json')
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
const _ = require('lodash');
|
||||
const addresses = require('./addresses');
|
||||
const addresses = require('../../addresses');
|
||||
|
||||
module.exports = function(request, options={}) {
|
||||
_.defaults(options, {
|
||||
@@ -1,9 +1,9 @@
|
||||
/* eslint-disable max-len */
|
||||
'use strict';
|
||||
const _ = require('lodash');
|
||||
const hashes = require('./hashes');
|
||||
const addresses = require('./addresses');
|
||||
const SerializedObject = require('../../src/core').SerializedObject;
|
||||
const hashes = require('../../hashes');
|
||||
const addresses = require('../../addresses');
|
||||
const SerializedObject = require('../../../../src/core').SerializedObject;
|
||||
|
||||
module.exports = function(request, options={}) {
|
||||
_.defaults(options, {
|
||||
14
test/fixtures/api/rippled/index.js
vendored
Normal file
14
test/fixtures/api/rippled/index.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
misc: require('./mock'),
|
||||
account_offers: require('./account-offers'),
|
||||
account_tx: require('./account-tx'),
|
||||
book_offers: require('./book-offers'),
|
||||
ripple_path_find: require('./ripple-path-find'),
|
||||
tx: {
|
||||
AccountSet: require('./tx/account-set.json'),
|
||||
OfferCreate: require('./tx/offer-create.json'),
|
||||
OfferCancel: require('./tx/offer-cancel.json')
|
||||
}
|
||||
};
|
||||
@@ -1,8 +1,8 @@
|
||||
/* eslint-disable max-len */
|
||||
'use strict';
|
||||
const _ = require('lodash');
|
||||
const addresses = require('./addresses');
|
||||
const accountTransactionsResponse = require('./acct-tx-response');
|
||||
const addresses = require('../../addresses');
|
||||
const accountTransactionsResponse = require('./account-tx');
|
||||
const BASE_LEDGER_INDEX = 8819951;
|
||||
|
||||
module.exports.accountTransactionsResponse = accountTransactionsResponse;
|
||||
@@ -3,17 +3,9 @@ const _ = require('lodash');
|
||||
const assert = require('assert');
|
||||
const WebSocketServer = require('ws').Server;
|
||||
const EventEmitter2 = require('eventemitter2').EventEmitter2;
|
||||
const fixtures = require('./fixtures/mock');
|
||||
const fixtures = require('./fixtures/api/rippled');
|
||||
const addresses = require('./fixtures/addresses');
|
||||
const hashes = require('./fixtures/hashes');
|
||||
const accountOffersResponse = require('./fixtures/acct-offers-response');
|
||||
const bookOffers = require('./fixtures/book-offers-response');
|
||||
const accountSetTransactionResponse = require('./fixtures/account-set-tx.json');
|
||||
const offerCreateTransactionResponse =
|
||||
require('./fixtures/rippled-responses/offer-create');
|
||||
const offerCancelTransactionResponse =
|
||||
require('./fixtures/rippled-responses/offer-cancel');
|
||||
const paths = require('./fixtures/paths');
|
||||
|
||||
function isUSD(json) {
|
||||
return json === 'USD' || json === '0000000000000000000000005553440000000000';
|
||||
@@ -73,7 +65,7 @@ module.exports = function(port) {
|
||||
|
||||
mock.on('request_server_info', function(request, conn) {
|
||||
assert.strictEqual(request.command, 'server_info');
|
||||
conn.send(fixtures.serverInfoResponse(request));
|
||||
conn.send(fixtures.misc.serverInfoResponse(request));
|
||||
});
|
||||
|
||||
mock.on('request_subscribe', function(request, conn) {
|
||||
@@ -83,15 +75,15 @@ module.exports = function(port) {
|
||||
} else {
|
||||
assert.deepEqual(request.streams, ['ledger', 'server']);
|
||||
}
|
||||
conn.send(fixtures.subscribeResponse(request));
|
||||
conn.send(fixtures.misc.subscribeResponse(request));
|
||||
});
|
||||
|
||||
mock.on('request_account_info', function(request, conn) {
|
||||
assert.strictEqual(request.command, 'account_info');
|
||||
if (request.account === addresses.ACCOUNT) {
|
||||
conn.send(fixtures.accountInfoResponse(request));
|
||||
conn.send(fixtures.misc.accountInfoResponse(request));
|
||||
} else if (request.account === addresses.NOTFOUND) {
|
||||
conn.send(fixtures.accountNotFoundResponse(request));
|
||||
conn.send(fixtures.misc.accountNotFoundResponse(request));
|
||||
} else {
|
||||
assert(false, 'Unrecognized account address: ' + request.account);
|
||||
}
|
||||
@@ -99,27 +91,27 @@ module.exports = function(port) {
|
||||
|
||||
mock.on('request_ledger', function(request, conn) {
|
||||
assert.strictEqual(request.command, 'ledger');
|
||||
conn.send(fixtures.ledgerResponse(request));
|
||||
conn.send(fixtures.misc.ledgerResponse(request));
|
||||
});
|
||||
|
||||
mock.on('request_tx', function(request, conn) {
|
||||
assert.strictEqual(request.command, 'tx');
|
||||
if (request.transaction === hashes.VALID_TRANSACTION_HASH) {
|
||||
conn.send(fixtures.transactionResponse(request));
|
||||
conn.send(fixtures.misc.transactionResponse(request));
|
||||
} else if (request.transaction ===
|
||||
'4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA1B') {
|
||||
const transaction = accountSetTransactionResponse;
|
||||
conn.send(fixtures.transactionResponse(request, transaction));
|
||||
const transaction = fixtures.tx.AccountSet;
|
||||
conn.send(fixtures.misc.transactionResponse(request, transaction));
|
||||
} else if (request.transaction ===
|
||||
'10A6FB4A66EE80BED46AAE4815D7DC43B97E944984CCD5B93BCF3F8538CABC51') {
|
||||
const transaction = offerCreateTransactionResponse;
|
||||
conn.send(fixtures.transactionResponse(request, transaction));
|
||||
const transaction = fixtures.tx.OfferCreate;
|
||||
conn.send(fixtures.misc.transactionResponse(request, transaction));
|
||||
} else if (request.transaction ===
|
||||
'809335DD3B0B333865096217AA2F55A4DF168E0198080B3A090D12D88880FF0E') {
|
||||
const transaction = offerCancelTransactionResponse;
|
||||
conn.send(fixtures.transactionResponse(request, transaction));
|
||||
const transaction = fixtures.tx.OfferCancel;
|
||||
conn.send(fixtures.misc.transactionResponse(request, transaction));
|
||||
} else if (request.transaction === hashes.NOTFOUND_TRANSACTION_HASH) {
|
||||
conn.send(fixtures.transactionNotFoundResponse(request));
|
||||
conn.send(fixtures.misc.transactionNotFoundResponse(request));
|
||||
} else {
|
||||
assert(false, 'Unrecognized transaction hash: ' + request.transaction);
|
||||
}
|
||||
@@ -127,14 +119,14 @@ module.exports = function(port) {
|
||||
|
||||
mock.on('request_submit', function(request, conn) {
|
||||
assert.strictEqual(request.command, 'submit');
|
||||
conn.send(fixtures.submitResponse(request));
|
||||
conn.send(fixtures.misc.submitResponse(request));
|
||||
});
|
||||
|
||||
mock.on('request_account_lines', function(request, conn) {
|
||||
if (request.account === addresses.ACCOUNT) {
|
||||
conn.send(fixtures.accountLinesResponse(request));
|
||||
conn.send(fixtures.misc.accountLinesResponse(request));
|
||||
} else if (request.account === addresses.OTHER_ACCOUNT) {
|
||||
conn.send(fixtures.accountLinesCounterpartyResponse(request));
|
||||
conn.send(fixtures.misc.accountLinesCounterpartyResponse(request));
|
||||
} else {
|
||||
assert(false, 'Unrecognized account address: ' + request.account);
|
||||
}
|
||||
@@ -142,7 +134,7 @@ module.exports = function(port) {
|
||||
|
||||
mock.on('request_account_tx', function(request, conn) {
|
||||
if (request.account === addresses.ACCOUNT) {
|
||||
conn.send(fixtures.accountTransactionsResponse(request));
|
||||
conn.send(fixtures.misc.accountTransactionsResponse(request));
|
||||
} else {
|
||||
assert(false, 'Unrecognized account address: ' + request.account);
|
||||
}
|
||||
@@ -150,7 +142,7 @@ module.exports = function(port) {
|
||||
|
||||
mock.on('request_account_offers', function(request, conn) {
|
||||
if (request.account === addresses.ACCOUNT) {
|
||||
conn.send(accountOffersResponse(request));
|
||||
conn.send(fixtures.account_offers(request));
|
||||
} else {
|
||||
assert(false, 'Unrecognized account address: ' + request.account);
|
||||
}
|
||||
@@ -159,18 +151,18 @@ module.exports = function(port) {
|
||||
mock.on('request_book_offers', function(request, conn) {
|
||||
if (isBTC(request.taker_gets.currency)
|
||||
&& isUSD(request.taker_pays.currency)) {
|
||||
conn.send(bookOffers.requestBookOffersBidsResponse(request));
|
||||
conn.send(fixtures.book_offers.requestBookOffersBidsResponse(request));
|
||||
} else if (isUSD(request.taker_gets.currency)
|
||||
&& isBTC(request.taker_pays.currency)) {
|
||||
conn.send(bookOffers.requestBookOffersAsksResponse(request));
|
||||
conn.send(fixtures.book_offers.requestBookOffersAsksResponse(request));
|
||||
} else {
|
||||
assert(false, 'Unrecognized order book: ' + JSON.stringify(request));
|
||||
}
|
||||
});
|
||||
|
||||
mock.on('request_ripple_path_find', function(request, conn) {
|
||||
const response = paths.generateIOUPaymentPaths(request.id,
|
||||
request.source_account, request.destination_account,
|
||||
const response = fixtures.ripple_path_find.generateIOUPaymentPaths(
|
||||
request.id, request.source_account, request.destination_account,
|
||||
request.destination_amount);
|
||||
conn.send(response);
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
const net = require('net');
|
||||
const RippleAPI = require('../src').RippleAPI;
|
||||
const fixtures = require('./fixtures/mock');
|
||||
const fixtures = require('./fixtures/api/rippled').misc;
|
||||
const createMockRippled = require('./mock-rippled');
|
||||
|
||||
// using a free port instead of a constant port enables parallelization
|
||||
|
||||
Reference in New Issue
Block a user