| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- /// <reference types="node" />
- // eslint-disable-next-line import/no-extraneous-dependencies
- import { defineConfig } from '@playwright/test';
- export default defineConfig({
- // Test directory
- testDir: './playwright/tests',
- // Timeout settings
- timeout: 30000,
- expect: { timeout: 8000 },
- // Parallel execution
- fullyParallel: true,
- workers: process.env.CI ? 2 : 1,
- // Retry logic - 2 retries in CI, 0 locally
- retries: process.env.CI ? 2 : 0,
- // Reporter configuration - multiple reporters for better visibility
- reporter: process.env.CI
- ? [
- ['github'], // GitHub Actions annotations
- ['list'], // Detailed output with summary table
- ['html', { outputFolder: 'playwright-report', open: 'never' }], // Interactive report
- ['json', { outputFile: 'test-results/results.json' }], // Machine-readable
- ]
- : [
- ['list'], // Shows summary table locally
- ['html', { outputFolder: 'playwright-report', open: 'on-failure' }], // Auto-open on failure
- ],
- // Global test setup
- use: {
- // Use environment variable for base URL in CI, default to localhost:8088 for local
- baseURL: process.env.PLAYWRIGHT_BASE_URL || 'http://localhost:8088',
- // Browser settings
- headless: !!process.env.CI,
- viewport: { width: 1280, height: 1024 },
- // Screenshots and videos on failure
- screenshot: 'only-on-failure',
- video: 'retain-on-failure',
- // Trace collection for debugging
- trace: 'retain-on-failure',
- },
- projects: [
- {
- name: 'chromium',
- use: {
- browserName: 'chromium',
- testIdAttribute: 'data-test',
- },
- },
- ],
- // Web server setup - disabled in CI (Flask started separately in workflow)
- webServer: process.env.CI
- ? undefined
- : {
- command: 'curl -f http://localhost:8088/health',
- url: 'http://localhost:8088/health',
- reuseExistingServer: true,
- timeout: 5000,
- },
- });
|