Files
xahau.js/packages/xrpl/test/client/getBalances.test.ts
2023-02-03 17:03:07 -06:00

118 lines
3.7 KiB
TypeScript

import responses from '../fixtures/responses'
import rippled from '../fixtures/rippled'
import rippledAccountLines from '../fixtures/rippled/accountLines'
import {
setupClient,
teardownClient,
type XrplTestContext,
} from '../setupClient'
import { assertResultMatch, addressTests } from '../testUtils'
/**
* 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.
*/
describe('client.getBalances', function () {
let testContext: XrplTestContext
beforeEach(async () => {
testContext = await setupClient()
})
afterEach(async () => teardownClient(testContext))
addressTests.forEach(function (testcase) {
describe(testcase.type, () => {
it('getBalances - base', async function () {
testContext.mockRippled!.addResponse(
'account_info',
rippled.account_info.normal,
)
testContext.mockRippled!.addResponse(
'account_lines',
rippledAccountLines.normal,
)
testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal)
const result = await testContext.client.getBalances(testcase.address)
assertResultMatch(result, responses.getBalances, 'getBalances')
})
it('getBalances - limit', async function () {
const request = {
account: testcase.address,
options: {
limit: 10,
},
}
testContext.mockRippled!.addResponse(
'account_info',
rippled.account_info.normal,
)
testContext.mockRippled!.addResponse(
'account_lines',
rippledAccountLines.normal,
)
testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal)
const expectedResponse = responses.getBalances.slice(
0,
request.options.limit,
)
const result = await testContext.client.getBalances(
request.account,
request.options,
)
assertResultMatch(result, expectedResponse, 'getBalances')
})
it('getBalances - peer', async function () {
const options = {
peer: 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
}
testContext.mockRippled!.addResponse(
'account_info',
rippled.account_info.normal,
)
testContext.mockRippled!.addResponse(
'account_lines',
rippledAccountLines.normal,
)
testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal)
const expectedResponse = responses.getBalances.filter(
(item) => item.issuer === options.peer,
)
const result = await testContext.client.getBalances(
testcase.address,
options,
)
assertResultMatch(result, expectedResponse, 'getBalances')
})
it('getBalances - limit & peer', async function () {
const options = {
peer: 'rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B',
limit: 10,
}
testContext.mockRippled!.addResponse(
'account_info',
rippled.account_info.normal,
)
testContext.mockRippled!.addResponse(
'account_lines',
rippledAccountLines.normal,
)
testContext.mockRippled!.addResponse('ledger', rippled.ledger.normal)
const expectedResponse = responses.getBalances
.filter((item) => item.issuer === options.peer)
.slice(0, options.limit)
const result = await testContext.client.getBalances(
testcase.address,
options,
)
assertResultMatch(result, expectedResponse, 'getBalances')
})
})
})
})