From 57d587dd61dc8eccb3b45b8bbe63ee62d1273a0b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 11 May 2026 02:29:32 +0100 Subject: [PATCH] test: tighten claude migration assertions --- extensions/migrate-claude/provider.test.ts | 33 +++++++++++++--------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/extensions/migrate-claude/provider.test.ts b/extensions/migrate-claude/provider.test.ts index 5b7e0a8af44..496ffc92388 100644 --- a/extensions/migrate-claude/provider.test.ts +++ b/extensions/migrate-claude/provider.test.ts @@ -13,6 +13,17 @@ import { writeFile, } from "./test/provider-helpers.js"; +function planItemById( + items: readonly { id: string; kind?: string; action?: string }[], + id: string, +) { + const item = items.find((candidate) => candidate.id === id); + if (!item) { + throw new Error(`expected migration plan item ${id}`); + } + return item; +} + describe("Claude migration provider", () => { afterEach(async () => { await cleanupTempRoots(); @@ -86,20 +97,16 @@ describe("Claude migration provider", () => { ); expect(plan.summary.total).toBeGreaterThan(0); - expect(plan.items).toEqual( - expect.arrayContaining([ - expect.objectContaining({ id: "workspace:CLAUDE.md", kind: "workspace" }), - expect.objectContaining({ - id: "config:mcp-server:project-mcp:filesystem", - kind: "config", - }), - expect.objectContaining({ id: "skill:claude-command-commit", action: "create" }), - expect.objectContaining({ id: "skill:review", action: "copy" }), - expect.objectContaining({ id: "archive:CLAUDE.local.md", action: "archive" }), - expect.objectContaining({ id: "archive:project-agents", action: "archive" }), - expect.objectContaining({ id: expect.stringMatching(/^manual:hooks:/u), kind: "manual" }), - ]), + expect(planItemById(plan.items, "workspace:CLAUDE.md").kind).toBe("workspace"); + expect(planItemById(plan.items, "config:mcp-server:project-mcp:filesystem").kind).toBe( + "config", ); + expect(planItemById(plan.items, "skill:claude-command-commit").action).toBe("create"); + expect(planItemById(plan.items, "skill:review").action).toBe("copy"); + expect(planItemById(plan.items, "archive:CLAUDE.local.md").action).toBe("archive"); + expect(planItemById(plan.items, "archive:project-agents").action).toBe("archive"); + const manualHooksItem = plan.items.find((item) => item.id.startsWith("manual:hooks:")); + expect(manualHooksItem?.kind).toBe("manual"); const redacted = JSON.stringify(redactMigrationPlan(plan)); expect(redacted).not.toContain("short-dev-key");