28 lines
952 B
TypeScript
28 lines
952 B
TypeScript
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("备份文件头不匹配");
|
|
});
|
|
});
|