From 2cd44d864a2d54092b116c5683d02ec719c3f095 Mon Sep 17 00:00:00 2001 From: Shakker Date: Fri, 8 May 2026 20:45:46 +0100 Subject: [PATCH] test: tighten backup asset assertions --- src/commands/backup.test.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/commands/backup.test.ts b/src/commands/backup.test.ts index 57908cf9a59..89b71f1599a 100644 --- a/src/commands/backup.test.ts +++ b/src/commands/backup.test.ts @@ -88,12 +88,19 @@ describe("backup commands", () => { plan: Awaited>, ) { expect(plan.included).toHaveLength(1); - expect(plan.included[0]?.kind).toBe("state"); + const [included] = plan.included; + expect(included).toMatchObject({ kind: "state" }); expect(plan.skipped).toEqual( expect.arrayContaining([expect.objectContaining({ kind: "workspace", reason: "covered" })]), ); } + function expectOnlyAssetKind(assets: Array<{ kind: string }>, kind: string) { + expect(assets).toHaveLength(1); + const [asset] = assets; + expect(asset).toMatchObject({ kind }); + } + it("collapses default config, credentials, and workspace into the state backup root", async () => { const stateDir = path.join(tempHome.home, ".openclaw"); const configPath = path.join(stateDir, "openclaw.json"); @@ -394,8 +401,7 @@ describe("backup commands", () => { dryRun: true, onlyConfig: true, }); - expect(configOnly.assets).toHaveLength(1); - expect(configOnly.assets[0]?.kind).toBe("config"); + expectOnlyAssetKind(configOnly.assets, "config"); }); }); @@ -428,7 +434,6 @@ describe("backup commands", () => { expect(result.onlyConfig).toBe(true); expect(result.includeWorkspace).toBe(false); - expect(result.assets).toHaveLength(1); - expect(result.assets[0]?.kind).toBe("config"); + expectOnlyAssetKind(result.assets, "config"); }); });