@@ -107,26 +107,27 @@ describe("backup commands", () => {
|
107 | 107 | function expectWorkspaceCoveredByState( |
108 | 108 | plan: Awaited<ReturnType<typeof resolveBackupPlanFromDisk>>, |
109 | 109 | ) { |
110 | | -expect(plan.included).toHaveLength(1); |
| 110 | +expect(plan.included).toStrictEqual([expect.objectContaining({ kind: "state" })]); |
111 | 111 | const [included] = plan.included; |
112 | 112 | if (!included) { |
113 | 113 | throw new Error("Expected state asset to be included"); |
114 | 114 | } |
115 | | -expect(included.kind).toBe("state"); |
116 | | -expect(plan.skipped).toHaveLength(1); |
| 115 | +expect(plan.skipped).toStrictEqual([ |
| 116 | +expect.objectContaining({ |
| 117 | +kind: "workspace", |
| 118 | +reason: "covered", |
| 119 | +coveredBy: included.displayPath, |
| 120 | +}), |
| 121 | +]); |
117 | 122 | const [skipped] = plan.skipped; |
118 | 123 | if (!skipped) { |
119 | 124 | throw new Error("Expected covered workspace skip entry"); |
120 | 125 | } |
121 | | -expect(skipped.kind).toBe("workspace"); |
122 | | -expect(skipped.reason).toBe("covered"); |
123 | | -expect(skipped.coveredBy).toBe(included.displayPath); |
124 | 126 | expect(path.relative(included.sourcePath, skipped.sourcePath).startsWith("..")).toBe(false); |
125 | 127 | } |
126 | 128 | |
127 | 129 | function expectOnlyAssetKind(assets: Array<{ kind: string }>, kind: string) { |
128 | | -expect(assets).toHaveLength(1); |
129 | | -expect(assets.map((asset) => asset.kind)).toStrictEqual([kind]); |
| 130 | +expect(assets).toStrictEqual([expect.objectContaining({ kind })]); |
130 | 131 | } |
131 | 132 | |
132 | 133 | it("collapses default config, credentials, and workspace into the state backup root", async () => { |
|