25 lines
733 B
TypeScript
25 lines
733 B
TypeScript
import { expect, test } from "bun:test";
|
|
import { encodeDevicesql } from "../src/pdb/strings.ts";
|
|
|
|
test("empty encodes to 0x03", () => {
|
|
expect(Array.from(encodeDevicesql(""))).toEqual([0x03]);
|
|
});
|
|
|
|
test("short ascii uses short form", () => {
|
|
const out = encodeDevicesql("ABC");
|
|
// length = 3+1 = 4; (4<<1)|1 = 9
|
|
expect(out[0]).toBe(9);
|
|
expect(Array.from(out.slice(1))).toEqual([0x41, 0x42, 0x43]);
|
|
});
|
|
|
|
test("non-ascii uses utf-16 form", () => {
|
|
const out = encodeDevicesql("é");
|
|
expect(out[0]).toBe(0x90);
|
|
// total_length = utf16 bytes (2) + 4 = 6
|
|
expect(out[1]).toBe(6);
|
|
expect(out[2]).toBe(0);
|
|
expect(out[3]).toBe(0);
|
|
expect(out[4]).toBe(0xe9);
|
|
expect(out[5]).toBe(0x00);
|
|
});
|