const fixtures = require('./fixtures/codec-fixtures.json') const { decode, encode, decodeLedgerData } = require('../src') 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) => { test(`${name}[${testN}] can encode ${truncateForDisplay( json(t.json), )} to ${truncateForDisplay(t.binary)}`, () => { expect(encode(t.json)).toEqual(t.binary) }) 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) }) }) } }) })