Files
xahau.js/packages/ripple-binary-codec/test/binary-json.test.js
Nathan Nichols b14f055c6c Linter config lints test directory (#99)
Modify eslint config to lint ./test/
2020-08-21 17:04:14 -05:00

48 lines
1.4 KiB
JavaScript

const fixtures = require("./fixtures/codec-fixtures.json");
const { decode, encode, decodeLedgerData } = require("../dist");
function json(object) {
return JSON.stringify(object);
}
function truncateForDisplay(longStr) {
return `${longStr.slice(0, 10)} ... ${longStr.slice(-10)}`;
}
describe("ripple-binary-codec", function () {
function makeSuite(name, entries) {
describe(name, function () {
entries.forEach((t, testN) => {
// eslint-disable-next-line max-len
test(`${name}[${testN}] can encode ${truncateForDisplay(
json(t.json)
)} to ${truncateForDisplay(t.binary)}`, () => {
expect(encode(t.json)).toEqual(t.binary);
});
// eslint-disable-next-line max-len
test(`${name}[${testN}] can decode ${truncateForDisplay(
t.binary
)} to ${truncateForDisplay(json(t.json))}`, () => {
const decoded = decode(t.binary);
expect(decoded).toEqual(t.json);
});
});
});
}
makeSuite("transactions", fixtures.transactions);
makeSuite("accountState", fixtures.accountState);
describe("ledgerData", function () {
if (fixtures.ledgerData) {
fixtures.ledgerData.forEach((t, testN) => {
test(`ledgerData[${testN}] can decode ${t.binary} to ${json(
t.json
)}`, () => {
const decoded = decodeLedgerData(t.binary);
expect(t.json).toEqual(decoded);
});
});
}
});
});