@cloudpss/ubjson
Version:
Opinionated UBJSON encoder/decoder for CloudPSS.
38 lines (35 loc) • 1.27 kB
JavaScript
import { resetEnv } from '../.utils.js';
import { INPUTS, EXPECTED } from './.data.js';
import { encode, decode } from '../../dist/index.js';
describe('no Buffer and no textencoder/decoder', () => {
const { TextEncoder, TextDecoder } = globalThis;
beforeAll(() => {
// @ts-expect-error remove buffer
globalThis.Buffer = undefined;
// @ts-expect-error 移除 TextEncoder 以测试兼容性
globalThis.TextEncoder = undefined;
// @ts-expect-error 移除 TextDecoder 以测试兼容性
globalThis.TextDecoder = undefined;
resetEnv();
});
afterAll(() => {
globalThis.Buffer = Buffer;
globalThis.TextEncoder = TextEncoder;
globalThis.TextDecoder = TextDecoder;
resetEnv();
});
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);
}
});
});