UNPKG

@cloudpss/ubjson

Version:

Opinionated UBJSON encoder/decoder for CloudPSS.

38 lines (35 loc) 1.27 kB
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); } }); });