59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
import { defineConfig, devices } from '@playwright/test';
|
|
|
|
export default defineConfig({
|
|
testDir: './tests/e2e',
|
|
fullyParallel: true,
|
|
forbidOnly: !!process.env.CI,
|
|
retries: process.env.CI ? 2 : 0,
|
|
workers: process.env.CI ? 1 : 1,
|
|
reporter: 'html',
|
|
// Global test timeout - increased to 5 minutes for complex WordPress operations
|
|
timeout: 1000000,
|
|
// Global setup to authenticate once
|
|
globalSetup: './tests/e2e/global-setup.js',
|
|
use: {
|
|
baseURL: process.env.WORDPRESS_URL,
|
|
trace: 'on-first-retry',
|
|
screenshot: 'only-on-failure',
|
|
video: 'retain-on-failure',
|
|
// Ignore SSL errors for local development
|
|
ignoreHTTPSErrors: true,
|
|
// Global timeouts for all actions - increased to 3 minutes
|
|
actionTimeout: 180000,
|
|
navigationTimeout: 180000,
|
|
},
|
|
|
|
projects: [
|
|
{
|
|
name: 'chromium-wp-admin',
|
|
use: {
|
|
...devices['Desktop Chrome'],
|
|
// Increased timeouts for WordPress admin operations
|
|
actionTimeout: 180000,
|
|
navigationTimeout: 180000,
|
|
storageState: './tests/e2e/.auth/admin.json'
|
|
},
|
|
},
|
|
{
|
|
name: 'chromium-wp-customer',
|
|
use: {
|
|
...devices['Desktop Chrome'],
|
|
// Increased timeouts for WordPress admin operations
|
|
actionTimeout: 180000,
|
|
navigationTimeout: 180000,
|
|
storageState: './tests/e2e/.auth/customer.json'
|
|
},
|
|
}
|
|
],
|
|
|
|
// Only look for E2E test files, ignore Jest tests
|
|
testMatch: '**/tests/e2e/**/*.spec.js',
|
|
|
|
// Only start webServer in CI, not when using external WordPress URL
|
|
webServer: (process.env.CI && !process.env.WORDPRESS_URL) ? {
|
|
command: 'php -S localhost:8080 -t /tmp/wordpress-e2e',
|
|
port: 8080,
|
|
reuseExistingServer: false,
|
|
} : undefined,
|
|
});
|