From f7e9c315e4e0d275397b81594ff4e785344dcae4 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 9 May 2026 00:01:23 +0100 Subject: [PATCH] test: simplify diffs viewer id extraction --- extensions/diffs/src/tool.test.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/extensions/diffs/src/tool.test.ts b/extensions/diffs/src/tool.test.ts index cefa9518278..28db0d61e53 100644 --- a/extensions/diffs/src/tool.test.ts +++ b/extensions/diffs/src/tool.test.ts @@ -397,7 +397,7 @@ describe("diffs tool", () => { }); const viewerPath = String((result?.details as Record).viewerPath); - const [id] = viewerPath.split("/").filter(Boolean).slice(-2); + const id = extractViewerArtifactId(viewerPath); const html = await store.readHtml(id); expect(html).toContain('body data-theme="light"'); expect(html).toContain("--diffs-font-size: 17px;"); @@ -446,7 +446,7 @@ describe("diffs tool", () => { expect((result?.details as Record).fileScale).toBe(2.75); expect((result?.details as Record).fileMaxWidth).toBe(1320); const viewerPath = String((result?.details as Record).viewerPath); - const [id] = viewerPath.split("/").filter(Boolean).slice(-2); + const id = extractViewerArtifactId(viewerPath); const html = await store.readHtml(id); expect(html).toContain('body data-theme="dark"'); }); @@ -580,6 +580,22 @@ function readDetails(result: unknown): Record { return details; } +function extractViewerArtifactId(viewerPath: string): string { + let previousSegment: string | undefined; + let currentSegment: string | undefined; + for (const segment of viewerPath.split("/")) { + if (segment.length === 0) { + continue; + } + previousSegment = currentSegment; + currentSegment = segment; + } + if (!previousSegment) { + throw new Error(`Missing artifact id in viewer path: ${viewerPath}`); + } + return previousSegment; +} + function readParametersProperties(parameters: unknown): Record { if (isRecord(parameters) && isRecord(parameters.properties)) { return parameters.properties;