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(t.binary).toEqual(encode(t.json)) }) // 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(t.json).toEqual(decoded) }) }) }) } 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) }) }) } }) })