diff --git a/src/client/connection.ts b/src/client/connection.ts index fd67af1b..539f4e5f 100644 --- a/src/client/connection.ts +++ b/src/client/connection.ts @@ -241,7 +241,7 @@ class RequestManager { } if (data.status !== "success") { const error = new ResponseFormatError( - `unrecognized status: ${data.status}`, + `unrecognized response.status: ${data.status}`, data ); this.reject(data.id, error); diff --git a/test/broadcastClient.ts b/test/broadcastClient.ts index d9964c00..4cbac87b 100644 --- a/test/broadcastClient.ts +++ b/test/broadcastClient.ts @@ -24,7 +24,7 @@ describe("BroadcastClient", function () { it("base", function () { this.mocks.forEach((mock) => { - mock.addResponse({ command: "server_info" }, rippled.server_info.normal); + mock.addResponse("server_info", rippled.server_info.normal); }); assert(this.client.isConnected()); return this.client.request({ command: "server_info" }).then((response) => { @@ -35,7 +35,7 @@ describe("BroadcastClient", function () { it("error propagation", function (done) { const data = { error: "type", error_message: "info" }; this.mocks.forEach((mock) => { - mock.addResponse({ command: "echo" }, data); + mock.addResponse("echo", data); }); this.client.once("error", (type, info) => { assert.strictEqual(type, "type"); diff --git a/test/client/getBalances.ts b/test/client/getBalances.ts index 2c2d0db8..8535cad9 100644 --- a/test/client/getBalances.ts +++ b/test/client/getBalances.ts @@ -10,30 +10,18 @@ import { assertResultMatch, TestSuite } from "../testUtils"; */ export default { async getBalances(client, address, mockRippled) { - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); - mockRippled.addResponse( - { command: "account_lines" }, - rippledAccountLines.normal - ); - mockRippled.addResponse({ command: "ledger" }, rippled.ledger.normal); + mockRippled.addResponse("account_info", rippled.account_info.normal); + mockRippled.addResponse("account_lines", rippledAccountLines.normal); + mockRippled.addResponse("ledger", rippled.ledger.normal); const result = await client.getBalances(address); assertResultMatch(result, responses.getBalances, "getBalances"); }, "getBalances - limit": async (client, address, mockRippled) => { const options = { limit: 3, ledgerVersion: 123456 }; - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); - mockRippled.addResponse( - { command: "account_lines" }, - rippledAccountLines.normal - ); - mockRippled.addResponse({ command: "ledger" }, rippled.ledger.normal); + mockRippled.addResponse("account_info", rippled.account_info.normal); + mockRippled.addResponse("account_lines", rippledAccountLines.normal); + mockRippled.addResponse("ledger", rippled.ledger.normal); const expectedResponse = responses.getBalances.slice(0, 3); const result = await client.getBalances(address, options); assertResultMatch(result, expectedResponse, "getBalances"); @@ -41,15 +29,9 @@ export default { "getBalances - limit & currency": async (client, address, mockRippled) => { const options = { currency: "USD", limit: 3 }; - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); - mockRippled.addResponse( - { command: "account_lines" }, - rippledAccountLines.normal - ); - mockRippled.addResponse({ command: "ledger" }, rippled.ledger.normal); + mockRippled.addResponse("account_info", rippled.account_info.normal); + mockRippled.addResponse("account_lines", rippledAccountLines.normal); + mockRippled.addResponse("ledger", rippled.ledger.normal); const expectedResponse = responses.getBalances .filter((item) => item.currency === "USD") .slice(0, 3); @@ -67,15 +49,9 @@ export default { counterparty: "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", limit: 3, }; - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); - mockRippled.addResponse( - { command: "account_lines" }, - rippledAccountLines.normal - ); - mockRippled.addResponse({ command: "ledger" }, rippled.ledger.normal); + mockRippled.addResponse("account_info", rippled.account_info.normal); + mockRippled.addResponse("account_lines", rippledAccountLines.normal); + mockRippled.addResponse("ledger", rippled.ledger.normal); const expectedResponse = responses.getBalances .filter( diff --git a/test/client/getFee.ts b/test/client/getFee.ts index e9bbf567..a8c7d059 100644 --- a/test/client/getFee.ts +++ b/test/client/getFee.ts @@ -10,29 +10,20 @@ import { TestSuite } from "../testUtils"; */ export default { async getFee(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); const fee = await client.getFee(); assert.strictEqual(fee, "0.000012"); }, "getFee default": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); client._feeCushion = undefined as unknown as number; const fee = await client.getFee(); assert.strictEqual(fee, "0.000012"); }, "getFee - high load_factor": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.highLoadFactor - ); + mockRippled.addResponse("server_info", rippled.server_info.highLoadFactor); const fee = await client.getFee(); assert.strictEqual(fee, "2"); }, @@ -42,10 +33,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.highLoadFactor - ); + mockRippled.addResponse("server_info", rippled.server_info.highLoadFactor); // Ensure that overriding with high maxFeeXRP of '51540' causes no errors. // (fee will actually be 51539.607552) client._maxFeeXRP = "51540"; @@ -54,10 +42,7 @@ export default { }, "getFee custom cushion": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); client._feeCushion = 1.4; const fee = await client.getFee(); assert.strictEqual(fee, "0.000014"); @@ -66,20 +51,14 @@ export default { // This is not recommended since it may result in attempting to pay // less than the base fee. However, this test verifies the existing behavior. "getFee cushion less than 1.0": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); client._feeCushion = 0.9; const fee = await client.getFee(); assert.strictEqual(fee, "0.000009"); }, "getFee reporting": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); const fee = await client.getFee(); assert.strictEqual(fee, "0.000012"); }, diff --git a/test/client/getOrderbook.ts b/test/client/getOrderbook.ts index fa0ba1dc..6efe88b5 100644 --- a/test/client/getOrderbook.ts +++ b/test/client/getOrderbook.ts @@ -88,7 +88,7 @@ function xrpRippledResponse(request: BookOffersRequest): object { */ export default { async normal(client, address, mockRippled) { - mockRippled.addResponse({ command: "book_offers" }, normalRippledResponse); + mockRippled.addResponse("book_offers", normalRippledResponse); const response = await client.getOrderbook( address, requests.getOrderbook.normal, @@ -98,7 +98,7 @@ export default { }, "invalid options": async (client, address, mockRippled) => { - mockRippled.addResponse({ command: "book_offers" }, normalRippledResponse); + mockRippled.addResponse("book_offers", normalRippledResponse); assertRejects( client.getOrderbook(address, requests.getOrderbook.normal, { // @ts-expect-error @@ -109,7 +109,7 @@ export default { }, "with XRP": async (client, address, mockRippled) => { - mockRippled.addResponse({ command: "book_offers" }, xrpRippledResponse); + mockRippled.addResponse("book_offers", xrpRippledResponse); const response = await client.getOrderbook( address, requests.getOrderbook.withXRP @@ -154,7 +154,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse({ command: "book_offers" }, normalRippledResponse); + mockRippled.addResponse("book_offers", normalRippledResponse); const response = await client.getOrderbook( address, requests.getOrderbook.normal @@ -183,7 +183,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse({ command: "book_offers" }, normalRippledResponse); + mockRippled.addResponse("book_offers", normalRippledResponse); const response = await client.getOrderbook( address, requests.getOrderbook.normal @@ -204,7 +204,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse({ command: "book_offers" }, normalRippledResponse); + mockRippled.addResponse("book_offers", normalRippledResponse); const response = await client.getOrderbook( address, requests.getOrderbook.normal diff --git a/test/client/getPaths.ts b/test/client/getPaths.ts index 81e6e498..1e56fe2f 100644 --- a/test/client/getPaths.ts +++ b/test/client/getPaths.ts @@ -48,7 +48,7 @@ export default { // assertResultMatch(response, RESPONSE_FIXTURES.XrpToXrp, 'getPaths') // }, "source with issuer": async (client, _, mockRippled) => { - mockRippled.addResponse({ command: "ripple_path_find" }, rippledResponse); + mockRippled.addResponse("ripple_path_find", rippledResponse); return assertRejects( client.getPaths(REQUEST_FIXTURES.issuer), client.errors.NotFoundError @@ -61,41 +61,41 @@ export default { // ) // }, "invalid PathFind": async (client, _, mockRippled) => { - mockRippled.addResponse({ command: "ripple_path_find" }, rippledResponse); + mockRippled.addResponse("ripple_path_find", rippledResponse); assert.throws(() => { client.getPaths(REQUEST_FIXTURES.invalid); }, /Cannot specify both source.amount/); }, "does not accept currency": async (client, _, mockRippled) => { - mockRippled.addResponse({ command: "ripple_path_find" }, rippledResponse); + mockRippled.addResponse("ripple_path_find", rippledResponse); return assertRejects( client.getPaths(REQUEST_FIXTURES.NotAcceptCurrency), client.errors.NotFoundError ); }, "no paths": async (client, _, mockRippled) => { - mockRippled.addResponse({ command: "ripple_path_find" }, rippledResponse); + mockRippled.addResponse("ripple_path_find", rippledResponse); return assertRejects( client.getPaths(REQUEST_FIXTURES.NoPaths), client.errors.NotFoundError ); }, "no paths source amount": async (client, _, mockRippled) => { - mockRippled.addResponse({ command: "ripple_path_find" }, rippledResponse); + mockRippled.addResponse("ripple_path_find", rippledResponse); return assertRejects( client.getPaths(REQUEST_FIXTURES.NoPathsSource), client.errors.NotFoundError ); }, "no paths with source currencies": async (client, _, mockRippled) => { - mockRippled.addResponse({ command: "ripple_path_find" }, rippledResponse); + mockRippled.addResponse("ripple_path_find", rippledResponse); return assertRejects( client.getPaths(REQUEST_FIXTURES.NoPathsWithCurrencies), client.errors.NotFoundError ); }, "error: srcActNotFound": async (client, _, mockRippled) => { - mockRippled.addResponse({ command: "ripple_path_find" }, rippledResponse); + mockRippled.addResponse("ripple_path_find", rippledResponse); return assertRejects( client.getPaths({ ...REQUEST_FIXTURES.normal, diff --git a/test/client/getTrustlines.ts b/test/client/getTrustlines.ts index 35b869c6..7cb05163 100644 --- a/test/client/getTrustlines.ts +++ b/test/client/getTrustlines.ts @@ -12,7 +12,7 @@ const { getTrustlines: RESPONSE_FIXTURES } = responses; */ export default { "getTrustlines - filtered": async (client, address, mockRippled) => { - mockRippled.addResponse({ command: "account_lines" }, rippled.normal); + mockRippled.addResponse("account_lines", rippled.normal); const options = { currency: "USD" }; const result = await client.getTrustlines(address, options); assertResultMatch(result, RESPONSE_FIXTURES.filtered, "getTrustlines"); @@ -23,7 +23,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse({ command: "account_lines" }, rippled.manyItems); + mockRippled.addResponse("account_lines", rippled.manyItems); const options = { limit: 401 }; const result = await client.getTrustlines(address, options); assertResultMatch( @@ -34,7 +34,7 @@ export default { }, "getTrustlines - no options": async (client, address, mockRippled) => { - mockRippled.addResponse({ command: "account_lines" }, rippled.normal); + mockRippled.addResponse("account_lines", rippled.normal); await client.getTrustlines(address); }, @@ -43,10 +43,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "account_lines" }, - rippled.ripplingDisabled - ); + mockRippled.addResponse("account_lines", rippled.ripplingDisabled); const result = await client.getTrustlines(address); assertResultMatch( result, @@ -60,7 +57,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse({ command: "account_lines" }, rippled.manyItems); + mockRippled.addResponse("account_lines", rippled.manyItems); const result = await client.getTrustlines(addresses.FOURTH_ACCOUNT, { ledgerVersion: 5, }); diff --git a/test/client/hasNextPage.ts b/test/client/hasNextPage.ts index 0414cf17..609b2e9a 100644 --- a/test/client/hasNextPage.ts +++ b/test/client/hasNextPage.ts @@ -14,10 +14,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "ledger_data" }, - rippled.ledger_data.first_page - ); + mockRippled.addResponse("ledger_data", rippled.ledger_data.first_page); const response = await client.request({ command: "ledger_data" }); assert(client.hasNextPage(response)); }, @@ -33,7 +30,7 @@ export default { } return rippled.ledger_data.first_page; }; - mockRippled.addResponse({ command: "ledger_data" }, rippledResponse); + mockRippled.addResponse("ledger_data", rippledResponse); const response = await client.request({ command: "ledger_data" }); const responseNextPage = await client.requestNextPage( { command: "ledger_data" }, diff --git a/test/client/prepareCheckCancel.ts b/test/client/prepareCheckCancel.ts index 4edb542c..99743b7b 100644 --- a/test/client/prepareCheckCancel.ts +++ b/test/client/prepareCheckCancel.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { async prepareCheckCancel(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareCheckCancel( address, requests.prepareCheckCancel.normal @@ -33,19 +24,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/prepareCheckCash.ts b/test/client/prepareCheckCash.ts index f757a08e..88a50c53 100644 --- a/test/client/prepareCheckCash.ts +++ b/test/client/prepareCheckCash.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { "prepareCheckCash amount": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareCheckCash( address, requests.prepareCheckCash.amount @@ -33,19 +24,10 @@ export default { }, "prepareCheckCash deliverMin": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareCheckCash( address, requests.prepareCheckCash.deliverMin @@ -54,19 +36,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/prepareCheckCreate.ts b/test/client/prepareCheckCreate.ts index 9c533702..e498c630 100644 --- a/test/client/prepareCheckCreate.ts +++ b/test/client/prepareCheckCreate.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { async prepareCheckCreate(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -38,19 +29,10 @@ export default { }, "prepareCheckCreate full": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareCheckCreate( address, requests.prepareCheckCreate.full @@ -59,19 +41,10 @@ export default { }, "prepareCheckCreate with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/prepareEscrowCancellation.ts b/test/client/prepareEscrowCancellation.ts index 30862786..adec389c 100644 --- a/test/client/prepareEscrowCancellation.ts +++ b/test/client/prepareEscrowCancellation.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { async prepareEscrowCancellation(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareEscrowCancellation( address, requests.prepareEscrowCancellation.normal, @@ -42,19 +33,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareEscrowCancellation( address, requests.prepareEscrowCancellation.memos @@ -67,19 +49,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/prepareEscrowCreation.ts b/test/client/prepareEscrowCreation.ts index 0af7f3d3..62f6a0cd 100644 --- a/test/client/prepareEscrowCreation.ts +++ b/test/client/prepareEscrowCreation.ts @@ -19,19 +19,10 @@ export const config = { */ export default { async prepareEscrowCreation(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -49,19 +40,10 @@ export default { }, "prepareEscrowCreation full": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareEscrowCreation( address, requests.prepareEscrowCreation.full @@ -70,19 +52,10 @@ export default { }, "prepareEscrowCreation - invalid": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const escrow = { ...requests.prepareEscrowCreation.full }; delete escrow.amount; // Make invalid await assertRejects( @@ -93,19 +66,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000396", diff --git a/test/client/prepareEscrowExecution.ts b/test/client/prepareEscrowExecution.ts index 746e2a07..15406c6d 100644 --- a/test/client/prepareEscrowExecution.ts +++ b/test/client/prepareEscrowExecution.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { async prepareEscrowExecution(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareEscrowExecution( address, requests.prepareEscrowExecution.normal, @@ -38,19 +29,10 @@ export default { }, "prepareEscrowExecution - simple": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareEscrowExecution( address, requests.prepareEscrowExecution.simple @@ -67,19 +49,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); await assertRejects( client.prepareEscrowExecution( address, @@ -96,19 +69,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); await assertRejects( client.prepareEscrowExecution( address, @@ -121,19 +85,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000396", diff --git a/test/client/prepareOrder.ts b/test/client/prepareOrder.ts index ccc353ff..1f899172 100644 --- a/test/client/prepareOrder.ts +++ b/test/client/prepareOrder.ts @@ -12,38 +12,20 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { "buy order": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrder.buy; const result = await client.prepareOrder(address, request); assertResultMatch(result, responses.prepareOrder.buy, "prepare"); }, "buy order with expiration": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrder.expiration; const response = responses.prepareOrder.expiration; const result = await client.prepareOrder( @@ -55,19 +37,10 @@ export default { }, "sell order": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrder.sell; const result = await client.prepareOrder( address, @@ -78,19 +51,10 @@ export default { }, async invalid(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = { ...requests.prepareOrder.sell }; delete request.direction; // Make invalid await assertRejects( @@ -105,19 +69,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrder.sell; const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, diff --git a/test/client/prepareOrderCancellation.ts b/test/client/prepareOrderCancellation.ts index 3c8ec854..7827e290 100644 --- a/test/client/prepareOrderCancellation.ts +++ b/test/client/prepareOrderCancellation.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { async prepareOrderCancellation(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrderCancellation.simple; const result = await client.prepareOrderCancellation( address, @@ -39,19 +30,10 @@ export default { }, "no instructions": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrderCancellation.simple; const result = await client.prepareOrderCancellation(address, request); assertResultMatch( @@ -62,19 +44,10 @@ export default { }, "with memos": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrderCancellation.withMemos; const result = await client.prepareOrderCancellation(address, request); assertResultMatch( @@ -85,19 +58,10 @@ export default { }, async invalid(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = { ...requests.prepareOrderCancellation.withMemos, }; @@ -111,19 +75,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const request = requests.prepareOrderCancellation.simple; const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, diff --git a/test/client/preparePayment.ts b/test/client/preparePayment.ts index de06d3fa..d0883286 100644 --- a/test/client/preparePayment.ts +++ b/test/client/preparePayment.ts @@ -1,8 +1,4 @@ -import { assert } from "chai"; -import binary from "ripple-binary-codec"; - import { ValidationError } from "xrpl-local/common/errors"; -import * as schemaValidator from "xrpl-local/common/schema-validator"; import requests from "../fixtures/requests"; import responses from "../fixtures/responses"; @@ -21,19 +17,10 @@ const RECIPIENT_ADDRESS = "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo"; */ export default { async normal(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -47,19 +34,10 @@ export default { }, "min amount xrp": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -73,19 +51,10 @@ export default { }, "min amount xrp2xrp": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const response = await client.preparePayment( address, REQUEST_FIXTURES.minAmount, @@ -95,19 +64,10 @@ export default { }, "XRP to XRP": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = { source: { address: "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", @@ -136,19 +96,10 @@ export default { }, "XRP drops to XRP drops": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = { source: { address: "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", @@ -177,19 +128,10 @@ export default { }, "XRP drops to XRP": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = { source: { address: "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", @@ -218,19 +160,10 @@ export default { }, "XRP to XRP drops": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = { source: { address: "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", @@ -264,19 +197,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = { source: { address, @@ -301,19 +225,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); // Marking as "any" to get around the fact that TS won't allow this. const payment: any = { source: { address }, @@ -335,19 +250,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = { source: { address, @@ -366,19 +272,10 @@ export default { }, "XRP to XRP no partial": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); return assertRejects( client.preparePayment(address, REQUEST_FIXTURES.wrongPartial), ValidationError, @@ -391,19 +288,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); return assertRejects( client.preparePayment(address, REQUEST_FIXTURES.wrongAddress), ValidationError, @@ -412,19 +300,10 @@ export default { }, "wrong amount": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); return assertRejects( client.preparePayment(address, REQUEST_FIXTURES.wrongAmount), ValidationError, @@ -433,19 +312,10 @@ export default { }, "throws when fee exceeds 2 XRP": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, fee: "2.1", @@ -481,19 +351,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, sequence: 23, @@ -508,19 +369,10 @@ export default { "preparePayment with source.amount/destination.minAmount can be signed": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); // See also: 'sign succeeds with source.amount/destination.minAmount' const localInstructions = { @@ -529,60 +381,17 @@ export default { }; const response = await client.preparePayment( address, - { - source: { - address, - amount: { - currency: "GBP", - value: "0.1", - counterparty: "rpat5TmYjDsnFSStmgTumFgXCM9eqsWPro", - }, - }, - destination: { - address: "rEX4LtGJubaUcMWCJULcy4NVxGT9ZEMVRq", - minAmount: { - currency: "USD", - value: "0.1248548562296331", - counterparty: "rMaa8VLBTjwTJWA2kSme4Sqgphhr6Lr6FH", - }, - }, - }, + REQUEST_FIXTURES.noCounterparty, localInstructions ); - - // Important: check that the prepared transaction can actually be signed - // https://github.com/ripple/ripple-lib/issues/1237#issuecomment-631670946 - - const secret = "shotKgaEotpcYsshSE39vmSnBDRim"; - const result = client.sign(response.txJSON, secret); - const expectedResult = { - signedTransaction: - "12000022800200002400000017201B0086955361EC6386F26FC0FFFF0000000000000000000000005553440000000000DC596C88BCDE4E818D416FCDEEBF2C8656BADC9A68400000000000000C69D4438D7EA4C6800000000000000000000000000047425000000000000C155FFE99C8C91F67083CEFFDB69EBFE76348CA6AD4446F8C5D8A5E0B0000000000000000000000005553440000000000DC596C88BCDE4E818D416FCDEEBF2C8656BADC9A7321022B05847086686F9D0499B13136B94AD4323EE1B67D4C429ECC987AB35ACFA34574473045022100D9634523D8E232D4A7807A71856023D82AC928FA29848571B820867898413B5F022041AC00EC1F81A26A6504EBF844A38CC3204694EF2CC1A97A87632721631F93DA81145E7B112523F68D2F5E879DB4EAC51C6698A6930483149F500E50C2F016CA01945E5A1E5846B61EF2D376", - id: "1C558AA9B926C24FB6BBD6950B2DB1350A83F9F12E4385208867907019761A2D", - }; - const decoded = binary.decode(result.signedTransaction); - assert( - decoded.Flags === 2147614720, - `Flags = ${decoded.Flags}, should be 2147614720` - ); - assert.deepEqual(result, expectedResult); - schemaValidator.schemaValidate("sign", result); + assertResultMatch(response, RESPONSE_FIXTURES.noCounterparty, "prepare"); }, "destination.minAmount": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const response = await client.preparePayment( address, responses.getPaths.sendAll[0], @@ -592,19 +401,10 @@ export default { }, "caps fee at 2 XRP by default": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; const expectedResponse = { txJSON: @@ -628,19 +428,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._maxFeeXRP = "2.2"; const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, @@ -664,19 +455,10 @@ export default { }, "fee - default maxFee of 2 XRP": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; const expectedResponse = { txJSON: @@ -700,19 +482,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; client._maxFeeXRP = "3"; const localInstructions = { @@ -737,19 +510,10 @@ export default { }, "fee - capped to maxFee": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; client._maxFeeXRP = "5"; const localInstructions = { diff --git a/test/client/preparePaymentChannelClaim.ts b/test/client/preparePaymentChannelClaim.ts index 168d8c60..7999236c 100644 --- a/test/client/preparePaymentChannelClaim.ts +++ b/test/client/preparePaymentChannelClaim.ts @@ -16,19 +16,10 @@ const { preparePaymentChannelClaim: RESPONSE_FIXTURES } = responses; */ export default { async default(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -42,19 +33,10 @@ export default { }, "with renew": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -68,19 +50,10 @@ export default { }, "with close": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -94,19 +67,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -125,19 +89,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); try { const prepared = await client.preparePaymentChannelClaim( address, @@ -162,19 +117,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); try { const prepared = await client.preparePaymentChannelClaim( address, diff --git a/test/client/preparePaymentChannelCreate.ts b/test/client/preparePaymentChannelCreate.ts index e5d7b99a..ac3163a3 100644 --- a/test/client/preparePaymentChannelCreate.ts +++ b/test/client/preparePaymentChannelCreate.ts @@ -19,19 +19,10 @@ export const config = { */ export default { async preparePaymentChannelCreate(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -49,19 +40,10 @@ export default { }, "preparePaymentChannelCreate full": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.preparePaymentChannelCreate( address, requests.preparePaymentChannelCreate.full @@ -78,19 +60,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/preparePaymentChannelFund.ts b/test/client/preparePaymentChannelFund.ts index 8bedb5f3..8911341a 100644 --- a/test/client/preparePaymentChannelFund.ts +++ b/test/client/preparePaymentChannelFund.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { async preparePaymentChannelFund(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -42,19 +33,10 @@ export default { }, "preparePaymentChannelFund full": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.preparePaymentChannelFund( address, requests.preparePaymentChannelFund.full @@ -67,19 +49,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/prepareSettings.ts b/test/client/prepareSettings.ts index e8e2ba7a..08996ae4 100644 --- a/test/client/prepareSettings.ts +++ b/test/client/prepareSettings.ts @@ -1,6 +1,6 @@ import { assert } from "chai"; -import { FormattedSettings } from "../../src/common/types/objects"; +import { FormattedSettings } from "../../src/common/types/objects"; import requests from "../fixtures/requests"; import responses from "../fixtures/responses"; import rippled from "../fixtures/rippled"; @@ -15,19 +15,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { "simple test": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const response = await client.prepareSettings( address, requests.prepareSettings.domain, @@ -36,19 +27,10 @@ export default { assertResultMatch(response, responses.prepareSettings.flags, "prepare"); }, "no maxLedgerVersion": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const response = await client.prepareSettings( address, requests.prepareSettings.domain, @@ -63,19 +45,10 @@ export default { ); }, "no instructions": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const response = await client.prepareSettings( address, requests.prepareSettings.domain @@ -87,19 +60,10 @@ export default { ); }, async regularKey(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const regularKey = { regularKey: "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD" }; const response = await client.prepareSettings( address, @@ -113,19 +77,10 @@ export default { ); }, "remove regularKey": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const regularKey = { regularKey: null }; const response = await client.prepareSettings( address, @@ -139,19 +94,10 @@ export default { ); }, "flag set": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = { requireDestinationTag: true }; const response = await client.prepareSettings( address, @@ -161,19 +107,10 @@ export default { assertResultMatch(response, responses.prepareSettings.flagSet, "prepare"); }, "flag clear": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = { requireDestinationTag: false }; const response = await client.prepareSettings( address, @@ -183,19 +120,10 @@ export default { assertResultMatch(response, responses.prepareSettings.flagClear, "prepare"); }, "set depositAuth flag": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = { depositAuth: true }; const response = await client.prepareSettings( address, @@ -209,19 +137,10 @@ export default { ); }, "clear depositAuth flag": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = { depositAuth: false }; const response = await client.prepareSettings( address, @@ -235,19 +154,10 @@ export default { ); }, "integer field clear": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = { transferRate: null }; const response = await client.prepareSettings( address, @@ -258,19 +168,10 @@ export default { assert.strictEqual(JSON.parse(response.txJSON).TransferRate, 0); }, "set transferRate": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = { transferRate: 1 }; const response = await client.prepareSettings( address, @@ -284,19 +185,10 @@ export default { ); }, "set signers": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = requests.prepareSettings.signers.normal; const response = await client.prepareSettings( address, @@ -306,19 +198,10 @@ export default { assertResultMatch(response, responses.prepareSettings.signers, "prepare"); }, "signers no threshold": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = requests.prepareSettings.signers.noThreshold; try { const response = await client.prepareSettings( @@ -340,19 +223,10 @@ export default { } }, "signers no weights": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = requests.prepareSettings.signers.noWeights; const localInstructions = { signersCount: 1, @@ -366,19 +240,10 @@ export default { assertResultMatch(response, responses.prepareSettings.noWeights, "prepare"); }, "fee for multisign": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { signersCount: 4, ...instructionsWithMaxLedgerVersionOffset, @@ -395,19 +260,10 @@ export default { ); }, "no signer list": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const settings = requests.prepareSettings.noSignerEntries; const localInstructions = { signersCount: 1, @@ -425,19 +281,10 @@ export default { ); }, async invalid(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); // domain must be a string const settings = { ...requests.prepareSettings.domain, domain: 123 }; const localInstructions = { @@ -465,19 +312,10 @@ export default { } }, async offline(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const secret = "shsWGZcmZz6YsWWmcnpfr6fLTdtFV"; const settings = requests.prepareSettings.domain; @@ -498,19 +336,10 @@ export default { ); }, "prepare settings with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const instructions = { ticketSequence: 23, maxLedgerVersion: 8820051, diff --git a/test/client/prepareTicket.ts b/test/client/prepareTicket.ts index d14849b1..f2c42648 100644 --- a/test/client/prepareTicket.ts +++ b/test/client/prepareTicket.ts @@ -24,19 +24,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const expected = { txJSON: '{"TransactionType":"TicketCreate", "TicketCount": 2, "Account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59","Flags":2147483648,"LastLedgerSequence":8819954,"Sequence":23,"Fee":"12"}', @@ -55,19 +46,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const expected = { txJSON: '{"TransactionType":"TicketCreate", "TicketCount": 1, "Account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59","Flags":2147483648,"LastLedgerSequence":8819954,"Sequence": 0,"TicketSequence":23,"Fee":"12"}', diff --git a/test/client/prepareTransaction.ts b/test/client/prepareTransaction.ts index acf6102d..564a84b2 100644 --- a/test/client/prepareTransaction.ts +++ b/test/client/prepareTransaction.ts @@ -26,19 +26,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = instructionsWithMaxLedgerVersionOffset; const txJSON = { TransactionType: "DepositPreauth", @@ -63,19 +54,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, fee: "0.000014", // CAUTION: This `fee` is specified in XRP, not drops. @@ -99,19 +81,10 @@ export default { "rejects Promise if both are set, even when txJSON.Fee matches instructions.fee": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, fee: "0.000016", @@ -131,19 +104,10 @@ export default { "rejects Promise if both are set, when txJSON.Fee does not match instructions.fee": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, fee: "0.000018", @@ -166,19 +130,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, Fee: "0.000022", // Intentionally capitalized in this test, but the correct field would be `fee` @@ -200,19 +155,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = instructionsWithMaxLedgerVersionOffset; const txJSON = { TransactionType: "DepositPreauth", @@ -232,39 +178,22 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); - const localInstructions = { - ...instructionsWithMaxLedgerVersionOffset, - maxFee: "0.000012", - }; + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); + const localInstructions = instructionsWithMaxLedgerVersionOffset; const txJSON = { TransactionType: "DepositPreauth", Account: address, Authorize: "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - Sequence: 100, + fee: "10", }; - const response = await client.prepareTransaction(txJSON, localInstructions); - const expected = { - txJSON: `{"TransactionType":"DepositPreauth","Account":"${address}","Authorize":"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo","Flags":2147483648,"LastLedgerSequence":8820051,"Fee":"12","Sequence":100}`, - instructions: { - fee: "0.000012", - sequence: 100, - maxLedgerVersion: 8820051, - }, - }; - return assertResultMatch(response, expected, "prepare"); + await assertRejects( + client.prepareTransaction(txJSON, localInstructions), + ValidationError, + 'txJSON additionalProperty "fee" exists in instance when not allowed' + ); }, "does not overwrite Sequence in Instructions": async ( @@ -272,19 +201,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -309,19 +229,10 @@ export default { "does not overwrite Sequence when same sequence is provided in both txJSON and Instructions": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -349,19 +260,10 @@ export default { "rejects Promise when Sequence in txJSON does not match sequence in Instructions": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -385,19 +287,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -422,37 +315,25 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); - const localInstructions = {}; + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); + const localInstructions = { + ...instructionsWithMaxLedgerVersionOffset, + maxFee: "0.000012", + Sequence: 100, // Intentionally capitalized in this test, but the correct field would be `sequence` + }; const txJSON = { TransactionType: "DepositPreauth", Account: address, Authorize: "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - Fee: "10", - LastLedgerSequence: 8880000, }; - const response = await client.prepareTransaction(txJSON, localInstructions); - const expected = { - txJSON: `{"TransactionType":"DepositPreauth","Account":"${address}","Authorize":"rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo","Flags":2147483648,"LastLedgerSequence":8880000,"Fee":"10","Sequence":23}`, - instructions: { - fee: "0.00001", // Notice there are not always 6 digits after the decimal point as trailing zeros are omitted - sequence: 23, - maxLedgerVersion: 8880000, - }, - }; - return assertResultMatch(response, expected, "prepare"); + await assertRejects( + client.prepareTransaction(txJSON, localInstructions), + ValidationError, + 'instance additionalProperty "Sequence" exists in instance when not allowed' + ); }, "does not overwrite maxLedgerVersion in Instructions": async ( @@ -460,19 +341,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { maxLedgerVersion: 8890000, }; @@ -498,19 +370,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxLedgerVersionOffset: 124, @@ -534,19 +397,10 @@ export default { "rejects Promise if txJSON.LastLedgerSequence and instructions.maxLedgerVersion both are set": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { maxLedgerVersion: 8900000, }; @@ -566,19 +420,10 @@ export default { "rejects Promise if txJSON.LastLedgerSequence and instructions.maxLedgerVersionOffset both are set": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxLedgerVersionOffset: 123, @@ -599,19 +444,10 @@ export default { "rejects Promise if instructions.maxLedgerVersion and instructions.maxLedgerVersionOffset both are set": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxLedgerVersion: 8900000, @@ -632,19 +468,10 @@ export default { "rejects Promise if txJSON.LastLedgerSequence and instructions.maxLedgerVersion and instructions.maxLedgerVersionOffset all are set": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxLedgerVersion: 8900000, @@ -666,19 +493,10 @@ export default { "rejects Promise when the maxLedgerVersion is capitalized in Instructions": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, MaxLedgerVersion: 8900000, // Intentionally capitalized in this test, but the correct field would be `maxLedgerVersion` @@ -700,48 +518,34 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); - const localInstructions = instructionsWithMaxLedgerVersionOffset; + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); + const localInstructions = { + ...instructionsWithMaxLedgerVersionOffset, + maxLedgerVersion: 8900000, + maxLedgerVersionOffset: 123, + }; const txJSON = { TransactionType: "DepositPreauth", Account: address, Authorize: "rpZc4mVfWUif9CRoHRKKcmhu1nx2xktxBo", - maxLedgerVersion: 8900000, + Fee: "16", }; await assertRejects( client.prepareTransaction(txJSON, localInstructions), ValidationError, - 'txJSON additionalProperty "maxLedgerVersion" exists in instance when not allowed' + "instance is of prohibited type [object Object]" ); }, "rejects Promise when the maxLedgerVersionOffset is specified in txJSON": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = instructionsWithMaxLedgerVersionOffset; const txJSON = { TransactionType: "DepositPreauth", @@ -761,19 +565,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = instructionsWithMaxLedgerVersionOffset; const txJSON = { TransactionType: "DepositPreauth", @@ -797,19 +592,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -832,19 +618,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -866,19 +643,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -901,19 +669,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -954,19 +713,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -993,19 +743,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1032,19 +773,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1087,19 +819,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1122,19 +845,10 @@ export default { }, "DepositPreauth - Authorize": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1157,19 +871,10 @@ export default { }, "DepositPreauth - Unauthorize": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1194,19 +899,10 @@ export default { }, async AccountDelete(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "5.0", // 5 XRP fee for AccountDelete @@ -1232,19 +928,10 @@ export default { // prepareTransaction - Payment "Payment - normal": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1272,19 +959,10 @@ export default { }, "min amount xrp": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1317,19 +995,10 @@ export default { }, "min amount xrp2xrp": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const txJSON = { TransactionType: "Payment", Account: address, @@ -1388,19 +1057,10 @@ export default { "fee is capped at default maxFee of 2 XRP (using txJSON.LastLedgerSequence)": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; const txJSON = { @@ -1439,19 +1099,10 @@ export default { "fee is capped at default maxFee of 2 XRP (using instructions.maxLedgerVersion)": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; const txJSON = { @@ -1498,19 +1149,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; client._maxFeeXRP = "3"; const localInstructions = { @@ -1551,19 +1193,10 @@ export default { // prepareTransaction - Payment "fee is capped to maxFee": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); client._feeCushion = 1000000; client._maxFeeXRP = "5"; const localInstructions = { @@ -1630,19 +1263,10 @@ export default { // }, "xaddress-issuer": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1670,19 +1294,10 @@ export default { }, async PaymentChannelCreate(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1712,19 +1327,10 @@ export default { }, "PaymentChannelCreate full": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const txJSON = { Account: address, TransactionType: "PaymentChannelCreate", @@ -1748,19 +1354,10 @@ export default { }, async PaymentChannelFund(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1781,19 +1378,10 @@ export default { }, "PaymentChannelFund full": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const txJSON = { Account: address, TransactionType: "PaymentChannelFund", @@ -1812,19 +1400,10 @@ export default { }, async PaymentChannelClaim(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1847,19 +1426,10 @@ export default { }, "PaymentChannelClaim with renew": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1889,19 +1459,10 @@ export default { }, "PaymentChannelClaim with close": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -1935,19 +1496,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ticketSequence: 23, sequence: 23, @@ -1970,19 +1522,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", @@ -2015,19 +1558,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/prepareTrustline.ts b/test/client/prepareTrustline.ts index 69ce5d09..3f992941 100644 --- a/test/client/prepareTrustline.ts +++ b/test/client/prepareTrustline.ts @@ -12,19 +12,10 @@ const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 }; */ export default { async simple(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareTrustline( address, requests.prepareTrustline.simple, @@ -34,19 +25,10 @@ export default { }, async frozen(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareTrustline( address, requests.prepareTrustline.frozen @@ -55,19 +37,10 @@ export default { }, async complex(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareTrustline( address, requests.prepareTrustline.complex, @@ -77,19 +50,10 @@ export default { }, async invalid(client, address, mockRippled) { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const trustline = { ...requests.prepareTrustline.complex }; delete trustline.limit; // Make invalid @@ -105,19 +69,10 @@ export default { }, "xaddress-issuer": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const result = await client.prepareTrustline( address, requests.prepareTrustline.issuedXAddress, @@ -131,19 +86,10 @@ export default { }, "with ticket": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const localInstructions = { ...instructionsWithMaxLedgerVersionOffset, maxFee: "0.000012", diff --git a/test/client/request.ts b/test/client/request.ts index 82514c1e..2a5c3ea1 100644 --- a/test/client/request.ts +++ b/test/client/request.ts @@ -9,10 +9,7 @@ import { TestSuite, assertResultMatch } from "../testUtils"; */ export default { "request account_objects": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "account_objects", account: address }, - rippled.account_objects.normal - ); + mockRippled.addResponse("account_objects", rippled.account_objects.normal); const result = await client.request({ command: "account_objects", account: address, @@ -30,10 +27,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "account_objects", account: address }, - rippled.account_objects.normal - ); + mockRippled.addResponse("account_objects", rippled.account_objects.normal); const result = await client.request({ command: "account_objects", account: address, diff --git a/test/client/requestNextPage.ts b/test/client/requestNextPage.ts index 4c682d55..38eeed3e 100644 --- a/test/client/requestNextPage.ts +++ b/test/client/requestNextPage.ts @@ -17,7 +17,7 @@ const rippledResponse = function (request: Request): object { */ export default { "requests the next page": async (client, address, mockRippled) => { - mockRippled.addResponse({ command: "ledger_data" }, rippledResponse); + mockRippled.addResponse("ledger_data", rippledResponse); const response = await client.request({ command: "ledger_data" }); const responseNextPage = await client.requestNextPage( { command: "ledger_data" }, @@ -34,7 +34,7 @@ export default { address, mockRippled ) => { - mockRippled.addResponse({ command: "ledger_data" }, rippledResponse); + mockRippled.addResponse("ledger_data", rippledResponse); const response = await client.request({ command: "ledger_data" }); const responseNextPage = await client.requestNextPage( { command: "ledger_data" }, diff --git a/test/client/sign.ts b/test/client/sign.ts index f057e859..df41ecd5 100644 --- a/test/client/sign.ts +++ b/test/client/sign.ts @@ -59,19 +59,10 @@ export default { }, "sign with paths": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const secret = "shsWGZcmZz6YsWWmcnpfr6fLTdtFV"; const payment = { source: { @@ -184,19 +175,10 @@ export default { }, "succeeds - prepared payment": async (client, address, mockRippled) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = await client.preparePayment(address, { source: { address, @@ -272,19 +254,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const payment = await client.preparePayment(address, { source: { address, @@ -312,19 +285,10 @@ export default { address, mockRippled ) => { - mockRippled.addResponse( - { command: "server_info" }, - rippled.server_info.normal - ); - mockRippled.addResponse({ command: "fee" }, rippled.fee); - mockRippled.addResponse( - { command: "ledger_current" }, - rippled.ledger_current - ); - mockRippled.addResponse( - { command: "account_info" }, - rippled.account_info.normal - ); + mockRippled.addResponse("server_info", rippled.server_info.normal); + mockRippled.addResponse("fee", rippled.fee); + mockRippled.addResponse("ledger_current", rippled.ledger_current); + mockRippled.addResponse("account_info", rippled.account_info.normal); const order = { direction: "sell", quantity: { diff --git a/test/connection.ts b/test/connection.ts index a2bc734c..fa1d4dc2 100644 --- a/test/connection.ts +++ b/test/connection.ts @@ -6,6 +6,15 @@ import _ from "lodash"; import { Client } from "xrpl-local"; import { Connection } from "xrpl-local/client"; +import { + ConnectionError, + DisconnectedError, + NotConnectedError, + ResponseFormatError, + RippleError, + TimeoutError, +} from "../src/common/errors"; + import rippled from "./fixtures/rippled"; import setupClient from "./setupClient"; import { ignoreWebSocketDisconnect } from "./testUtils"; @@ -109,7 +118,7 @@ describe("Connection", function () { }; const connection = new Connection(this.client.connection._url, options); connection.connect().catch((err) => { - assert(err instanceof this.client.errors.NotConnectedError); + assert(err instanceof NotConnectedError); }); }, done); }); @@ -131,10 +140,10 @@ describe("Connection", function () { ledger_index: "validated", }) .then(() => { - assert(false, "Should throw NotConnectedError"); + assert.fail("Should throw NotConnectedError"); }) .catch((error) => { - assert(error instanceof this.client.errors.NotConnectedError); + assert(error instanceof NotConnectedError); }); }); @@ -151,53 +160,48 @@ describe("Connection", function () { const connection = new Connection("ws://testripple.circleci.com:129"); connection.on("error", done); connection.connect().catch((error) => { - assert(error instanceof this.client.errors.NotConnectedError); + assert(error instanceof NotConnectedError); done(); }); }); it("DisconnectedError", async function () { - this.mockRippled.suppressOutput = true; - this.mockRippled.on(`request_server_info`, function (request, conn) { - assert.strictEqual(request.command, "server_info"); - conn.close(); - }); return this.client - .request({ command: "server_info" }) + .request({ command: "test_command", data: { closeServer: true } }) .then(() => { - assert(false, "Should throw DisconnectedError"); + assert.fail("Should throw DisconnectedError"); }) .catch((error) => { - assert(error instanceof this.client.errors.DisconnectedError); + assert(error instanceof DisconnectedError); }); }); it("TimeoutError", function () { - this.client.connection._ws.send = function (message, callback) { + this.client.connection._ws.send = function (_, callback) { callback(null); }; const request = { command: "server_info" }; return this.client.connection .request(request, 10) .then(() => { - assert(false, "Should throw TimeoutError"); + assert.fail("Should throw TimeoutError"); }) .catch((error) => { - assert(error instanceof this.client.errors.TimeoutError); + assert(error instanceof TimeoutError); }); }); it("DisconnectedError on send", function () { - this.client.connection._ws.send = function (message, callback) { + this.client.connection._ws.send = function (_, callback) { callback({ message: "not connected" }); }; return this.client .request({ command: "server_info" }) .then(() => { - assert(false, "Should throw DisconnectedError"); + assert.fail("Should throw DisconnectedError"); }) .catch((error) => { - assert(error instanceof this.client.errors.DisconnectedError); + assert(error instanceof DisconnectedError); assert.strictEqual(error.message, "not connected"); }); }); @@ -210,7 +214,7 @@ describe("Connection", function () { // stub _onOpen to only run logic relevant to test case this.client.connection._onOpen = () => { // overload websocket send on open when _ws exists - this.client.connection._ws.send = function (data, options, cb) { + this.client.connection._ws.send = function (_0, _1, _2) { // recent ws throws this error instead of calling back throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); }; @@ -221,7 +225,7 @@ describe("Connection", function () { try { await this.client.connect(); } catch (error) { - assert(error instanceof this.client.errors.DisconnectedError); + assert(error instanceof DisconnectedError); assert.strictEqual( error.message, "WebSocket is not open: readyState 0 (CONNECTING)" @@ -236,10 +240,10 @@ describe("Connection", function () { data: { unrecognizedResponse: true }, }) .then(() => { - assert(false, "Should throw ResponseFormatError"); + assert.fail("Should throw ResponseFormatError"); }) .catch((error) => { - assert(error instanceof this.client.errors.ResponseFormatError); + assert(error instanceof ResponseFormatError); }); }); @@ -403,11 +407,11 @@ describe("Connection", function () { return connection .connect() .then(() => { - assert(false, "Should throw ConnectionError"); + assert.fail("Should throw ConnectionError"); }) .catch((error) => { assert( - error instanceof this.client.errors.ConnectionError, + error instanceof ConnectionError, "Should throw ConnectionError" ); }); @@ -418,7 +422,7 @@ describe("Connection", function () { new Client({ servers: ["wss://server1.com", "wss://server2.com"], } as any); - }, this.client.errors.RippleError); + }, RippleError); }); it("connect throws error", function (done) { @@ -496,7 +500,7 @@ describe("Connection", function () { it("propagates RippledError data", function (done) { const request = { command: "subscribe", streams: "validations" }; - this.mockRippled.addResponse(request, rippled.subscribe.error); + this.mockRippled.addResponse(request.command, rippled.subscribe.error); this.client.request(request).catch((error) => { assert.strictEqual(error.name, "RippledError"); diff --git a/test/mockRippled.ts b/test/mockRippled.ts index a2cafa52..5a8a4000 100644 --- a/test/mockRippled.ts +++ b/test/mockRippled.ts @@ -6,13 +6,15 @@ import type { Request } from "../src"; import { getFreePort } from "./testUtils"; -function createResponse(request, response, overrides = {}) { - const result = { ...response.result, ...overrides }; - const change = - response.result && !_.isEmpty(overrides) - ? { id: request.id, result } - : { id: request.id }; - return JSON.stringify({ ...response, ...change }); +function createResponse(request: { id: number | string }, response: object) { + if (!("type" in response) && !("error" in response)) { + throw new Error( + `Bad response format. Must contain \`type\` or \`error\`. ${JSON.stringify( + response + )}` + ); + } + return JSON.stringify({ ...response, id: request.id }); } function ping(conn, request) { @@ -41,8 +43,12 @@ export function createMockRippled(port) { mock.on("connection", function (this: MockedWebSocketServer, conn: any) { this.socket = conn; conn.on("message", function (requestJSON) { + let request; try { - const request = JSON.parse(requestJSON); + request = JSON.parse(requestJSON); + if (request.id == null) { + throw new Error("Request has no id"); + } if (request.command === "ping") { ping(conn, request); } else if (request.command === "test_command") { @@ -58,7 +64,15 @@ export function createMockRippled(port) { if (!mock.suppressOutput) { console.error(`Error: ${err.message}`); } - conn.close(4000, err.message); + if (request != null) { + conn.send( + createResponse(request, { + type: "response", + status: "error", + error: err.message, + }) + ); + } } }); }); @@ -67,10 +81,23 @@ export function createMockRippled(port) { // If an object is passed in for `response`, then the response is static for the command // If a function is passed in for `response`, then the response can be determined by the exact request shape mock.addResponse = ( - request: Request, + command: string, response: object | ((r: Request) => object) ) => { - const command = request.command; + if (typeof command !== "string") { + throw new Error("command is not a string"); + } + if ( + typeof response === "object" && + !("type" in response) && + !("error" in response) + ) { + throw new Error( + `Bad response format. Must contain \`type\` or \`error\`. ${JSON.stringify( + response + )}` + ); + } mock.responses[command] = response; }; @@ -123,6 +150,8 @@ export function createMockRippled(port) { result: {}, }) ); + } else if (request.data.closeServer) { + conn.close(); } }; diff --git a/test/mockRippledTest.ts b/test/mockRippledTest.ts new file mode 100644 index 00000000..719865ab --- /dev/null +++ b/test/mockRippledTest.ts @@ -0,0 +1,36 @@ +import { assert } from "chai"; + +import { RippledError } from "../src/common/errors"; + +import setupClient from "./setupClient"; +import { assertRejects } from "./testUtils"; + +describe("mock rippled tests", function () { + beforeEach(setupClient.setup); + afterEach(setupClient.teardown); + it("errors if a mock is not provided", async function () { + this.mockRippled.suppressOutput = true; + await assertRejects( + this.client.request({ command: "server_info" }), + RippledError + ); + }); + + it("provide bad response shape", async function () { + assert.throws( + () => this.mockRippled.addResponse("account_info", { data: {} }), + Error + ); + }); + + it("provide bad response shape in function", async function () { + this.mockRippled.suppressOutput = true; + this.mockRippled.addResponse("account_info", (request) => { + return { data: request }; + }); + await assertRejects( + this.client.request({ command: "account_info", account: "" }), + RippledError + ); + }); +});