mirror of
https://git.unlock-music.dev/um/um-react.git
synced 2025-05-23 16:27:41 +08:00
29 lines
951 B
TypeScript
29 lines
951 B
TypeScript
import { MMKVParser } from '../MMKVParser';
|
|
|
|
const makeViewFromBuffer = (buff: Buffer) =>
|
|
new DataView(buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength));
|
|
|
|
test('throw error on broken file', () => {
|
|
const view = makeViewFromBuffer(
|
|
Buffer.from([0x27, 0x00, 0x00, 0x00, 0x7f, 0x03, 0x6b, 0x65, 0x79, 0x06, 0x07, 0x62, 0x61, 0x64, 0xff, 0xff]),
|
|
);
|
|
|
|
expect(() => {
|
|
const parser = new MMKVParser(view);
|
|
parser.readKey();
|
|
parser.readStringValue();
|
|
}).toThrow(/offset mismatch/i);
|
|
});
|
|
|
|
test('able to handle empty value', () => {
|
|
const view = makeViewFromBuffer(
|
|
Buffer.from([0x0b, 0x00, 0x00, 0x00, 0x7f, 0x03, 0x6b, 0x65, 0x79, 0x00, 0x01, 0x31, 0x02, 0x01, 0x32, 0xff]),
|
|
);
|
|
|
|
const parser = new MMKVParser(view);
|
|
expect(parser.readKey()).toEqual('key');
|
|
expect(parser.readStringValue()).toEqual(null);
|
|
expect(parser.readKey()).toEqual('1');
|
|
expect(parser.readStringValue()).toEqual('2');
|
|
});
|