From e24a5ba8f9c21f8d2c1c47adf3bf98f15cd8b96b Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Fri, 6 Sep 2024 11:02:06 +0200 Subject: [PATCH] finish test for default case --- packages/trace-viewer/src/ui/snapshotTab.tsx | 4 ++-- packages/web/src/uiUtils.ts | 2 +- tests/library/trace-viewer.spec.ts | 12 ++++++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/trace-viewer/src/ui/snapshotTab.tsx b/packages/trace-viewer/src/ui/snapshotTab.tsx index 55c9bc5fd8..229d9f8cef 100644 --- a/packages/trace-viewer/src/ui/snapshotTab.tsx +++ b/packages/trace-viewer/src/ui/snapshotTab.tsx @@ -52,7 +52,7 @@ export const SnapshotTab: React.FunctionComponent<{ }> = ({ action, model, sdkLanguage, testIdAttributeName, isInspecting, setIsInspecting, highlightedLocator, setHighlightedLocator, openPage }) => { const [measure, ref] = useMeasure(); const [snapshotTab, setSnapshotTab] = React.useState<'action'|'before'|'after'>('action'); - const [showScreenshotInsteadOfSnapshot] = useSetting('screenshot-instead-of-snapshot', false, 'Show screenshot instead of snapshot'); + const [showScreenshotInsteadOfSnapshot] = useSetting('screenshot-instead-of-snapshot', false); type Snapshot = { action: ActionTraceEvent, snapshotName: string, point?: { x: number, y: number } }; const { snapshots } = React.useMemo(() => { @@ -230,7 +230,7 @@ export const SnapshotTab: React.FunctionComponent<{ transform: `translate(${translate.x}px, ${translate.y}px) scale(${scale})`, }}> - {(showScreenshotInsteadOfSnapshot && screencastFrame) && } + {(showScreenshotInsteadOfSnapshot && screencastFrame) && {`Screenshot ${renderTitle(snapshotTab)}`} src={`sha1/${screencastFrame.sha1}`} width={screencastFrame.width} height={screencastFrame.height} />}
diff --git a/packages/web/src/uiUtils.ts b/packages/web/src/uiUtils.ts index 3ca9eb49af..49459fe29c 100644 --- a/packages/web/src/uiUtils.ts +++ b/packages/web/src/uiUtils.ts @@ -139,7 +139,7 @@ export function copy(text: string) { textArea.remove(); } -export function useSetting(name: string | undefined, defaultValue: S, title?: string): [S, React.Dispatch>] { +export function useSetting(name: string | undefined, defaultValue: S): [S, React.Dispatch>] { if (name) defaultValue = settings.getObject(name, defaultValue); const [value, setValue] = React.useState(defaultValue); diff --git a/tests/library/trace-viewer.spec.ts b/tests/library/trace-viewer.spec.ts index 4df0516477..74e02c1ef3 100644 --- a/tests/library/trace-viewer.spec.ts +++ b/tests/library/trace-viewer.spec.ts @@ -1471,7 +1471,15 @@ test('should allow showing screenshots instead of snapshots', async ({ runAndTra await page.goto(server.PREFIX + '/one-style.html'); }); - const snapshotFrame = await traceViewer.snapshotFrame('page.goto'); - await expect(snapshotFrame.locator('body')).toHaveCSS('background-color', 'pink', { timeout: 0 }); + const screenshot = traceViewer.page.getByAltText(`Screenshot of page.goto > Action`); + const snapshot = (await traceViewer.snapshotFrame('page.goto')).owner(); + await expect(snapshot).toBeVisible(); + await expect(screenshot).not.toBeVisible(); + + await traceViewer.page.getByTitle('Settings').click(); + await traceViewer.page.getByText('Show screenshot instead of snapshot').setChecked(true); + + await expect(snapshot).not.toBeVisible(); + await expect(screenshot).toBeVisible(); });