Files
xahau.js/test/client/prepareEscrowExecution.ts
Nathan Nichols 8b95ee5fab build: Initial linting setup (#1560)
* sets up linting config and runs `yarn lint --fix` once, so that all changes will show up correctly in future PRs.

* Note that there are still a lot of linter errors.
2021-10-04 14:10:10 -04:00

154 lines
4.3 KiB
TypeScript

import requests from "../fixtures/requests";
import responses from "../fixtures/responses";
import rippled from "../fixtures/rippled";
import { TestSuite, assertRejects, assertResultMatch } from "../testUtils";
const instructionsWithMaxLedgerVersionOffset = { maxLedgerVersionOffset: 100 };
/**
* Every test suite exports their tests in the default object.
* - Check out the "TestSuite" type for documentation on the interface.
* - Check out "test/client/index.ts" for more information about the test runner.
*/
export default <TestSuite>{
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
);
const result = await client.prepareEscrowExecution(
address,
requests.prepareEscrowExecution.normal,
instructionsWithMaxLedgerVersionOffset
);
assertResultMatch(
result,
responses.prepareEscrowExecution.normal,
"prepare"
);
},
"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
);
const result = await client.prepareEscrowExecution(
address,
requests.prepareEscrowExecution.simple
);
assertResultMatch(
result,
responses.prepareEscrowExecution.simple,
"prepare"
);
},
"prepareEscrowExecution - no condition": 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
);
await assertRejects(
client.prepareEscrowExecution(
address,
requests.prepareEscrowExecution.noCondition,
instructionsWithMaxLedgerVersionOffset
),
client.errors.ValidationError,
'"condition" and "fulfillment" fields on EscrowFinish must only be specified together.'
);
},
"prepareEscrowExecution - no fulfillment": 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
);
await assertRejects(
client.prepareEscrowExecution(
address,
requests.prepareEscrowExecution.noFulfillment,
instructionsWithMaxLedgerVersionOffset
),
client.errors.ValidationError,
'"condition" and "fulfillment" fields on EscrowFinish must only be specified together.'
);
},
"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
);
const localInstructions = {
...instructionsWithMaxLedgerVersionOffset,
maxFee: "0.000396",
ticketSequence: 23,
};
const result = await client.prepareEscrowExecution(
address,
requests.prepareEscrowExecution.normal,
localInstructions
);
assertResultMatch(
result,
responses.prepareEscrowExecution.ticket,
"prepare"
);
},
};