Files
xahau.js/test/broadcast-client-test.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

72 lines
1.9 KiB
TypeScript

import _ from 'lodash'
import assert from 'assert-diff'
import setupClient from './setup-client'
import responses from './fixtures/responses'
import ledgerClosed from './fixtures/rippled/ledger-close.json'
import {ignoreWebSocketDisconnect} from './utils'
const TIMEOUT = 20000
function checkResult(expected, response) {
if (expected.txJSON) {
assert(response.txJSON)
assert.deepEqual(JSON.parse(response.txJSON), JSON.parse(expected.txJSON))
}
assert.deepEqual(_.omit(response, 'txJSON'), _.omit(expected, 'txJSON'))
return response
}
describe('ClientBroadcast', function () {
this.timeout(TIMEOUT)
beforeEach(setupClient.setupBroadcast)
afterEach(setupClient.teardown)
it('base', function () {
const expected = {request_server_info: 1}
this.mocks.forEach((mock) => mock.expect(Object.assign({}, expected)))
assert(this.client.isConnected())
return this.client
.getServerInfo()
.then(response => {
return checkResult(responses.getServerInfo, response.result.info)
})
})
it('ledger', function (done) {
let gotLedger = 0
this.client.on('ledger', () => {
gotLedger++
})
const ledgerNext = {...ledgerClosed}
ledgerNext.ledger_index++
this.client._clients.forEach((client) =>
client.connection
.request({
command: 'echo',
data: ledgerNext
})
.catch(ignoreWebSocketDisconnect)
)
setTimeout(() => {
assert.strictEqual(gotLedger, 1)
done()
}, 1250)
})
it('error propagation', function (done) {
this.client.once('error', (type, info) => {
assert.strictEqual(type, 'type')
assert.strictEqual(info, 'info')
done()
})
this.client._clients[1].connection
.request({
command: 'echo',
data: {error: 'type', error_message: 'info'}
})
.catch(ignoreWebSocketDisconnect)
})
})