2026-07-29 22:41:11 -04:00
|
|
|
import { mkdir } from 'node:fs/promises'
|
|
|
|
|
import { join } from 'node:path'
|
2026-07-29 22:50:27 -04:00
|
|
|
import { expect, test, type Page } from '@playwright/test'
|
2026-07-29 22:41:11 -04:00
|
|
|
import {
|
|
|
|
|
gotoLiveEmptyReady,
|
2026-07-29 22:50:27 -04:00
|
|
|
waitForScreenshotReady,
|
2026-07-29 22:41:11 -04:00
|
|
|
} from '../visual/helpers'
|
|
|
|
|
|
|
|
|
|
const version = process.env.RELEASE_FIDELITY_VERSION ?? 'v0.4.0'
|
|
|
|
|
const output = process.env.RELEASE_FIDELITY_OUTPUT ?? 'release-fidelity'
|
|
|
|
|
|
|
|
|
|
async function capture(page: Page, name: string, project: string): Promise<void> {
|
|
|
|
|
const directory = join(output, version, 'candidate', project)
|
|
|
|
|
await mkdir(directory, { recursive: true })
|
|
|
|
|
await page.screenshot({ fullPage: true, path: join(directory, `${name}.png`) })
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-29 22:50:27 -04:00
|
|
|
async function gotoCommandCenterFidelityReady(page: Page): Promise<void> {
|
|
|
|
|
await page.goto('/')
|
|
|
|
|
await expect(page.getByTestId('command-center')).toBeVisible()
|
|
|
|
|
await expect(page.getByTestId('cc-focus')).toBeVisible()
|
2026-07-29 22:55:08 -04:00
|
|
|
await expect(page.getByTestId('cc-calendar-1229')).toBeVisible()
|
2026-07-29 22:50:27 -04:00
|
|
|
await page.waitForLoadState('networkidle')
|
|
|
|
|
await waitForScreenshotReady(page)
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-29 22:41:11 -04:00
|
|
|
test.describe('release-fidelity candidate captures', () => {
|
|
|
|
|
test('approved screen set', async ({ page }, testInfo) => {
|
|
|
|
|
const project = testInfo.project.name
|
|
|
|
|
|
|
|
|
|
if (project === 'desktop') {
|
2026-07-29 22:50:27 -04:00
|
|
|
await gotoCommandCenterFidelityReady(page)
|
2026-07-29 22:41:11 -04:00
|
|
|
await capture(page, 'weekend-between-races', project)
|
|
|
|
|
await gotoLiveEmptyReady(page)
|
|
|
|
|
await capture(page, 'weekend-live', project)
|
|
|
|
|
} else {
|
2026-07-29 22:50:27 -04:00
|
|
|
await gotoCommandCenterFidelityReady(page)
|
2026-07-29 22:41:11 -04:00
|
|
|
await capture(page, 'weekend-between-sessions-mobile', project)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|