feat(pkg): Add hda-cms-extension-e2e

This commit is contained in:
T. R. Bernstein
2025-02-26 23:57:37 +01:00
parent 07ff1edd24
commit e6a5afc3cd
23 changed files with 697 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
import type { PlaywrightTestConfig } from '@playwright/test'
import type { WorkerConfigOptions } from './src/fixtures/config-options.js'
import { defineConfig, devices } from '@playwright/test'
import { fileURLToPath } from 'url'
import * as path from 'path'
import directus_config from './docker/directus-config.js'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const testDir = './src'
const playwrightDir = path.join(__dirname, '.playwright')
const outputDir = path.join(playwrightDir, 'Temporaries')
const globalSessionFile = path.join(playwrightDir, 'session.js')
/**
* See https://playwright.dev/docs/test-configuration.
*/
const config: PlaywrightTestConfig<{}, WorkerConfigOptions> = {
testDir,
outputDir,
forbidOnly: !!process.env['CI'],
retries: process.env['CI'] ? 2 : 0,
workers: process.env['CI'] ? 1 : '100%',
reporter: 'list',
timeout: 60000,
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
baseURL: `${directus_config.PUBLIC_URL}:${directus_config.PORT}`,
trace: 'on-first-retry',
globalSessionFile
},
projects: [
{
name: 'setup',
testMatch: /.*\.setup\.ts/
},
{
name: 'chromium',
use: {
...devices['Desktop Chrome']
},
dependencies: ['setup']
},
{
name: 'firefox',
use: {
...devices['Desktop Firefox']
},
dependencies: ['setup']
},
{
name: 'webkit',
use: {
...devices['Desktop Safari']
},
dependencies: ['setup']
},
/* Test against mobile viewports. */
{
name: 'Mobile Chrome',
use: {
...devices['Pixel 5']
},
dependencies: ['setup']
},
{
name: 'Mobile Safari',
use: {
...devices['iPhone 12']
},
dependencies: ['setup']
}
],
/* Run your local dev server before starting the tests */
webServer: {
command: './setup.sh start-fg',
url: `${directus_config.PUBLIC_URL}:${directus_config.PORT}`,
reuseExistingServer: !process.env['CI'],
gracefulShutdown: { signal: 'SIGTERM', timeout: 2000 }
}
}
export default defineConfig(config)