33 lines
933 B
TypeScript
33 lines
933 B
TypeScript
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");
|
|
});
|
|
});
|