mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-22 15:31:07 +00:00
85 lines
2.3 KiB
TypeScript
85 lines
2.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { formatBackupCreateSummary, type BackupCreateResult } from "./backup-create.js";
|
|
|
|
function makeResult(overrides: Partial<BackupCreateResult> = {}): BackupCreateResult {
|
|
return {
|
|
createdAt: "2026-01-01T00:00:00.000Z",
|
|
archiveRoot: "openclaw-backup-2026-01-01",
|
|
archivePath: "/tmp/openclaw-backup.tar.gz",
|
|
dryRun: false,
|
|
includeWorkspace: true,
|
|
onlyConfig: false,
|
|
verified: false,
|
|
assets: [],
|
|
skipped: [],
|
|
...overrides,
|
|
};
|
|
}
|
|
|
|
describe("formatBackupCreateSummary", () => {
|
|
it("formats created archives with included and skipped paths", () => {
|
|
const lines = formatBackupCreateSummary(
|
|
makeResult({
|
|
verified: true,
|
|
assets: [
|
|
{
|
|
kind: "state",
|
|
sourcePath: "/state",
|
|
archivePath: "archive/state",
|
|
displayPath: "~/.openclaw",
|
|
},
|
|
],
|
|
skipped: [
|
|
{
|
|
kind: "workspace",
|
|
sourcePath: "/workspace",
|
|
displayPath: "~/Projects/openclaw",
|
|
reason: "covered",
|
|
coveredBy: "~/.openclaw",
|
|
},
|
|
],
|
|
}),
|
|
);
|
|
|
|
expect(lines).toEqual([
|
|
"Backup archive: /tmp/openclaw-backup.tar.gz",
|
|
"Included 1 path:",
|
|
"- state: ~/.openclaw",
|
|
"Skipped 1 path:",
|
|
"- workspace: ~/Projects/openclaw (covered by ~/.openclaw)",
|
|
"Created /tmp/openclaw-backup.tar.gz",
|
|
"Archive verification: passed",
|
|
]);
|
|
});
|
|
|
|
it("formats dry runs and pluralized counts", () => {
|
|
const lines = formatBackupCreateSummary(
|
|
makeResult({
|
|
dryRun: true,
|
|
assets: [
|
|
{
|
|
kind: "config",
|
|
sourcePath: "/config",
|
|
archivePath: "archive/config",
|
|
displayPath: "~/.openclaw/config.json",
|
|
},
|
|
{
|
|
kind: "credentials",
|
|
sourcePath: "/oauth",
|
|
archivePath: "archive/oauth",
|
|
displayPath: "~/.openclaw/oauth",
|
|
},
|
|
],
|
|
}),
|
|
);
|
|
|
|
expect(lines).toEqual([
|
|
"Backup archive: /tmp/openclaw-backup.tar.gz",
|
|
"Included 2 paths:",
|
|
"- config: ~/.openclaw/config.json",
|
|
"- credentials: ~/.openclaw/oauth",
|
|
"Dry run only; archive was not written.",
|
|
]);
|
|
});
|
|
});
|