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

53 lines
1.5 KiB
TypeScript

import assert from "assert-diff";
import _ from "lodash";
import responses from "./fixtures/responses";
import rippled from "./fixtures/rippled";
import setupClient from "./setupClient";
import { ignoreWebSocketDisconnect } from "./testUtils";
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("BroadcastClient", function () {
this.timeout(TIMEOUT);
beforeEach(setupClient.setupBroadcast);
afterEach(setupClient.teardown);
it("base", function () {
this.mocks.forEach((mock) => {
mock.addResponse({ command: "server_info" }, rippled.server_info.normal);
});
assert(this.client.isConnected());
return this.client.request({ command: "server_info" }).then((response) => {
return checkResult(responses.getServerInfo, response.result.info);
});
});
it("error propagation", function (done) {
const data = { error: "type", error_message: "info" };
this.mocks.forEach((mock) => {
mock.addResponse({ command: "echo" }, data);
});
this.client.once("error", (type, info) => {
assert.strictEqual(type, "type");
assert.strictEqual(info, "info");
done();
});
this.client._clients[1].connection
.request({
command: "echo",
data,
})
.catch(ignoreWebSocketDisconnect);
});
});