import { describe, expect, test } from "bun:test"; import { BACKUP_HEADER, backupStats, packBackup, readBackupFile, unpackBackup } from "../src/index.ts"; const sampleBackupPath = "resources/备份2026_4_26 19_17_42.bak"; describe("备份文件处理", () => { test("真实备份可以解包并统计", () => { const backup = readBackupFile(sampleBackupPath); expect(backupStats(backup)).toEqual({ version: 2, ruleCount: 15, globalVariableCount: 25, nodeCount: 267, }); }); test("打包结果使用固定头并可往返解包", () => { const backup = readBackupFile(sampleBackupPath); const packed = packBackup(backup); expect([...packed.subarray(0, 4)]).toEqual([...BACKUP_HEADER]); expect(unpackBackup(packed)).toEqual(backup); }); test("非法文件头会报错", () => { expect(() => unpackBackup(new Uint8Array([0, 1, 2, 3, 4]))).toThrow("备份文件头不匹配"); }); });