index.ts
682 Bytes
import { expect } from '@playwright/test'
import type { Page } from 'playwright-core'
export const testApiMocksPage = async (config: { page: Page; url: string; apiMocks?: Record<string, object> }) => {
const { page, url, apiMocks } = config
if (apiMocks && Object.keys(apiMocks).length > 0) {
for (const [routeShort, mockResponse] of Object.entries(apiMocks)) {
await page.route(`*/**/${routeShort}`, async (route) => {
await route.fulfill({ json: mockResponse })
})
}
}
await page.goto(url, { waitUntil: 'networkidle' })
await page.waitForSelector('#app', { state: 'visible' })
await expect(page).toHaveScreenshot({ fullPage: true })
}