woocommerce/plugins/woocommerce-blocks/tests/e2e-pw/playwright.config.ts

63 lines
1.4 KiB
TypeScript

/**
* External dependencies
*/
import { defineConfig, devices, PlaywrightTestConfig } from '@playwright/test';
interface ExtendedPlaywrightTestConfig extends PlaywrightTestConfig {
use: {
stateDir?: string;
} & PlaywrightTestConfig[ 'use' ];
}
const {
BASE_URL,
CI,
DEFAULT_TIMEOUT_OVERRIDE,
E2E_MAX_FAILURES,
PLAYWRIGHT_HTML_REPORT,
} = process.env;
const config: ExtendedPlaywrightTestConfig = {
timeout: DEFAULT_TIMEOUT_OVERRIDE
? Number( DEFAULT_TIMEOUT_OVERRIDE )
: 90 * 1000,
expect: { timeout: 20 * 1000 },
outputDir: './test-results/report',
globalSetup: require.resolve( './global-setup' ),
globalTeardown: require.resolve( './global-teardown' ),
testDir: 'tests',
retries: CI ? 4 : 0,
workers: 4,
fullyParallel: true,
reporter: [
[ 'list' ],
[
'html',
{
outputFolder:
PLAYWRIGHT_HTML_REPORT ??
'./test-results/playwright-report',
open: CI ? 'never' : 'always',
},
],
[ 'json', { outputFile: './test-results/test-results.json' } ],
],
maxFailures: E2E_MAX_FAILURES ? Number( E2E_MAX_FAILURES ) : 0,
use: {
baseURL: BASE_URL ?? 'http://localhost:8889',
screenshot: 'only-on-failure',
stateDir: './tests/e2e-pw/test-results/storage/',
trace: 'retain-on-failure',
video: 'on-first-retry',
viewport: { width: 1280, height: 720 },
},
projects: [
{
name: 'Chrome',
use: { ...devices[ 'Desktop Chrome' ] },
},
],
};
export default defineConfig( config );