Files
xahau.js/test/client/getTransactions/index.ts
Mayukha Vadari f49b9d4b0e Rewrite XrplClient.request and general cleanup (#1519)
* first attempt at overloading

* fix TS issues

* improve connection typing

* more cleanup

* edit all ledger files

* more renames

* fix all other request calls

* clean up serverinfo

* fixes more request calls

* remove old legacy browser stuff

* remove unused types

* remove exports from objects

* add type to method signatures

* add ledger requests

* fix most tests

* comment out formatBidsAndAsks

* fix proxy test

* comment out failing tests

* move client-related files into client

* add payment channel requests

* fix imports

* remove finished TODOs

* fix tests

* fix integ tests

* remove exported types

* better ci
2021-10-04 14:10:09 -04:00

170 lines
5.7 KiB
TypeScript

// import {Client} from 'xrpl-local'
// import assert from 'assert-diff'
import { TestSuite, assertRejects} from '../../utils'
// import responses from '../../fixtures/responses'
import hashes from '../../fixtures/hashes.json'
// import addresses from '../../fixtures/addresses.json'
// const utils = Client._PRIVATE.ledgerUtils
// const {getTransactions: RESPONSE_FIXTURES} = responses
/**
* 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>{
// 'default': async (client, address) => {
// const options = {types: ['payment', 'order'], initiated: true, limit: 2}
// const response = await client.getTransactions(address, options)
// hack(response)
// assertResultMatch(response, RESPONSE_FIXTURES.normal, 'getTransactions')
// },
// 'include raw transactions': async (client, address) => {
// const options = {
// types: ['payment', 'order'],
// initiated: true,
// limit: 2,
// includeRawTransactions: true
// }
// const response = await client.getTransactions(address, options)
// assertResultMatch(
// response,
// RESPONSE_FIXTURES.includeRawTransactions,
// 'getTransactions'
// )
// },
// 'earliest first': async (client, address) => {
// const options = {
// types: ['payment', 'order'],
// initiated: true,
// limit: 2,
// earliestFirst: true
// }
// const expected = Array.from(RESPONSE_FIXTURES.normal as any[]).sort(
// utils.compareTransactions
// )
// const response = await client.getTransactions(address, options)
// hack(response)
// assertResultMatch(response, expected, 'getTransactions')
// },
// 'earliest first with start option': async (client, address) => {
// const options = {
// types: ['payment', 'order'],
// initiated: true,
// limit: 2,
// start: hashes.VALID_TRANSACTION_HASH,
// earliestFirst: true
// }
// const response = await client.getTransactions(address, options)
// assert.strictEqual(response.length, 0)
// },
// 'gap': async (client, address) => {
// const options = {
// types: ['payment', 'order'],
// initiated: true,
// limit: 2,
// maxLedgerVersion: 348858000
// }
// return assertRejects(
// client.getTransactions(address, options),
// client.errors.MissingLedgerHistoryError
// )
// },
'tx not found': async (client, address) => {
const options = {
types: ['payment', 'order'],
initiated: true,
limit: 2,
start: hashes.NOTFOUND_TRANSACTION_HASH,
counterparty: address
}
return assertRejects(
client.getTransactions(address, options),
client.errors.NotFoundError
)
},
// 'filters': async (client, address) => {
// const options = {
// types: ['payment', 'order'],
// initiated: true,
// limit: 10,
// excludeFailures: true,
// counterparty: addresses.ISSUER
// }
// const response = await client.getTransactions(address, options)
// hack(response)
// assert.strictEqual(response.length, 10)
// response.forEach((t) => assert(t.type === 'payment' || t.type === 'order'))
// response.forEach((t) => assert(t.outcome.result === 'tesSUCCESS'))
// },
// 'filters for incoming': async (client, address) => {
// const options = {
// types: ['payment', 'order'],
// initiated: false,
// limit: 10,
// excludeFailures: true,
// counterparty: addresses.ISSUER
// }
// const response = await client.getTransactions(address, options)
// hack(response)
// assert.strictEqual(response.length, 10)
// response.forEach((t) => assert(t.type === 'payment' || t.type === 'order'))
// response.forEach((t) => assert(t.outcome.result === 'tesSUCCESS'))
// },
// this is the case where core.RippleError just falls
// through the client to the user
'error': async (client, address) => {
const options = {types: ['payment', 'order'], initiated: true, limit: 13}
return assertRejects(
client.getTransactions(address, options),
client.errors.RippleError
)
},
// TODO: this doesn't test much, just that it doesn't crash
// 'getTransactions with start option': async (client, address) => {
// const options = {
// start: hashes.VALID_TRANSACTION_HASH,
// earliestFirst: false,
// limit: 2
// }
// const response = await client.getTransactions(address, options)
// hack(response)
// assertResultMatch(response, RESPONSE_FIXTURES.normal, 'getTransactions')
// },
// 'start transaction with zero ledger version': async (client, address) => {
// const options = {
// start: '4FB3ADF22F3C605E23FAEFAA185F3BD763C4692CAC490D9819D117CD33BFAA13',
// limit: 1
// }
// const response = await client.getTransactions(address, options)
// hack(response)
// assertResultMatch(response, [], 'getTransactions')
// },
// 'no options': async (client, address) => {
// const response = await client.getTransactions(addresses.OTHER_ACCOUNT)
// assertResultMatch(response, RESPONSE_FIXTURES.one, 'getTransactions')
// }
}
// This test relies on the binary (hex string) format, but computed fields like `date`
// are not available in this format. To support this field, we need to 'hack' it into
// the expected response. Long term, a better approach would be to use/test the json
// format responses, instead of the binary.
// function hack(response) {
// response.forEach((element) => {
// element.outcome.timestamp = '2019-04-01T07:39:01.000Z'
// })
// }