import { describe, expect, test } from "bun:test"; import { parseKdbxHeader } from "../../src/kdbx/header"; function createHeaderBuffer(major: number, minor: number): Uint8Array { const buffer = new Uint8Array(12); buffer[0] = 0x03; buffer[1] = 0xd9; buffer[2] = 0xa2; buffer[3] = 0x9a; buffer[4] = 0x67; buffer[5] = 0xfb; buffer[6] = 0x4b; buffer[7] = 0xb5; buffer[8] = minor & 0xff; buffer[9] = (minor >> 8) & 0xff; buffer[10] = major & 0xff; buffer[11] = (major >> 8) & 0xff; return buffer; } describe("parseKdbxHeader", () => { test("reads a valid KDBX signature and version", () => { const parsed = parseKdbxHeader(createHeaderBuffer(4, 1)); expect(parsed.header).toEqual({ version: { major: 4, minor: 1 } }); }); test("rejects invalid signatures", () => { const buffer = createHeaderBuffer(4, 1); buffer[0] = 0x00; expect(() => parseKdbxHeader(buffer)).toThrow("Invalid KDBX signature"); }); });