@cloudpss/ubjson
Version:
Opinionated UBJSON encoder/decoder for CloudPSS.
28 lines (24 loc) • 886 B
JavaScript
import { EXPECTED, INPUTS } from './.data.js';
import { encode, decode } from '../../dist/index.js';
it.each(Object.keys(INPUTS))('%s', (name) => {
const input = INPUTS[name];
const expected = EXPECTED[name] ?? input;
if (expected instanceof Error) {
expect(() => {
const encoded = encode(input);
decode(encoded);
}).toThrow(expected);
} else {
const encoded = encode(input);
const decoded = decode(encoded);
expect(decoded).toEqual(expected);
}
});
test('decode ArrayBuffer', () => {
const obj = { a: 1, b: undefined, c: { d: 2, e: undefined, f: null } };
expect(decode(encode(obj).buffer)).toEqual(obj);
});
test('decode Int8Array', () => {
const obj = { a: 1, b: undefined, c: { d: 2, e: undefined, f: null } };
expect(decode(new Int8Array(encode(obj).buffer))).toEqual(obj);
});