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); });