Files
miot_x/tests/backup.test.ts

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