blob: 496383e139edd2ee0d6478111ca4566cec4c6f48 [file] [log] [blame]
/*
* Licensed 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.
*/
const { defineConfig, devices } = require('@playwright/test');
// https://playwright.dev/docs/test-configuration
module.exports = defineConfig({
testDir: './e2e',
globalSetup: require.resolve('./e2e/global-setup'),
globalTeardown: require.resolve('./e2e/global-teardown'),
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: 1,
workers: 10,
timeout: 300000,
expect: {
timeout: 60000
},
reporter: [
[!!process.env.CI ? 'github' : 'list'],
['html', { open: !!process.env.CI ? 'never' : 'always' }],
['./e2e/reporter.coverage.ts']
],
use: {
baseURL: process.env.CI ? 'http://localhost:8080' : 'http://localhost:4200',
trace: 'on-first-retry', // https://playwright.dev/docs/trace-viewer
screenshot: process.env.CI ? 'off' : 'only-on-failure',
video: process.env.CI ? 'off' : 'retain-on-failure',
launchOptions: {
args: ['--disable-dev-shm-usage']
},
headless: true,
actionTimeout: 60000,
navigationTimeout: 180000
},
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'], permissions: ['clipboard-read', 'clipboard-write'] }
},
{
name: 'Google Chrome',
use: { ...devices['Desktop Chrome'], channel: 'chrome', permissions: ['clipboard-read', 'clipboard-write'] }
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] }
},
{
name: 'webkit',
use: {
...devices['Desktop Safari'],
launchOptions: {
slowMo: 200
}
}
},
{
name: 'Microsoft Edge',
use: { ...devices['Desktop Edge'], channel: 'msedge', permissions: ['clipboard-read', 'clipboard-write'] }
}
],
webServer: process.env.CI
? undefined
: {
command: 'npm run start',
url: 'http://localhost:4200',
reuseExistingServer: true,
timeout: 2 * 60 * 1000
}
});