@cloudpss/ubjson
Version:
28 lines (24 loc) • 886 B
text/typescript
import { EXPECTED, INPUTS } from './.data.ts';
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);
});