From b203b0a53b31999870b878c2c3f75a8191855a8a Mon Sep 17 00:00:00 2001 From: "David R. Myers" Date: Thu, 5 Sep 2024 19:14:09 -0400 Subject: [PATCH] Clean up the Playwright config file --- playwright.config.ts | 79 ++++++-------------------------------------- 1 file changed, 11 insertions(+), 68 deletions(-) diff --git a/playwright.config.ts b/playwright.config.ts index 5eab7eea..0d825214 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,80 +1,23 @@ -import { defineConfig, devices } from '@playwright/test' +import { defineConfig } from '@playwright/test' -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); +const baseUrl = process.env.BASE_URL || 'http://127.0.0.1:8888' +const command = process.env.COMMAND || 'pnpm dev:full' +const isCi = !!process.env.CI -/** - * See https://playwright.dev/docs/test-configuration. - */ export default defineConfig({ - testDir: './test/e2e', - /* Run tests in files in parallel */ + forbidOnly: !!isCi, fullyParallel: true, - /* Fail the build on CI if you accidentally left test.only in the source code. */ - forbidOnly: !!process.env.CI, - /* Retry on CI only */ - retries: process.env.CI ? 2 : 0, - /* Opt out of parallel tests on CI. */ - workers: process.env.CI ? 1 : undefined, - /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + retries: isCi ? 2 : 0, + testDir: './test/e2e', use: { - /* Base URL to use in actions like `await page.goto('/')`. */ - baseURL: process.env.BASE_URL || 'http://127.0.0.1:8888', - + baseURL: baseUrl, testIdAttribute: 'data-test-id', - - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'on-first-retry', video: 'retain-on-failure', }, - - /* Configure projects for major browsers */ - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - - { - name: 'firefox', - use: { ...devices['Desktop Firefox'] }, - }, - - { - name: 'webkit', - use: { ...devices['Desktop Safari'] }, - }, - - /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { ...devices['Pixel 5'] }, - // }, - // { - // name: 'Mobile Safari', - // use: { ...devices['iPhone 12'] }, - // }, - - /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { ...devices['Desktop Edge'], channel: 'msedge' }, - // }, - // { - // name: 'Google Chrome', - // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, - // }, - ], - - /* Run your local dev server before starting the tests */ webServer: { - command: 'pnpm dev:full', - url: process.env.BASE_URL || 'http://127.0.0.1:8888', - reuseExistingServer: !process.env.CI, + command, + reuseExistingServer: !isCi, + url: baseUrl, }, })