Files
xahau.js/test/client/prepareEscrowExecution.ts
Mayukha Vadari 09ef8595e7 refactor: move fixtures closer to tests (part 2) (#1561)
* move echo

* move fee

* move subscribe/unsubscribe

* move ledger_current

* move ledger_data

* move submit/submit_multisigned

* remove account_tx/account_offers/gateway_balances

* move account_info

* remove ledger_entry

* remove tx

* remove account_lines

* remove ripple_path_find

* remove ledger

* remove book_offers

* move ping

* remove global_config

* move test_command

* additional mock-rippled cleanup

* add explanatory comment to mock.addResponse
2021-10-04 14:10:10 -04:00

100 lines
3.9 KiB
TypeScript

import {TestSuite, assertRejects, assertResultMatch} from '../testUtils'
import requests from '../fixtures/requests'
import responses from '../fixtures/responses'
import rippled from '../fixtures/rippled'
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>{
'prepareEscrowExecution': 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.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'
)
}
}