blob: 8d845d58320dcd674813c2a09e070ed9e1ab56e5 [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.
*/
import { defineConfig, devices } from '@playwright/test';
// https://playwright.dev/docs/test-configuration
export default defineConfig({
testDir: './e2e',
globalSetup: require.resolve('./e2e/global-setup'),
globalTeardown: require.resolve('./e2e/global-teardown'),
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: 4,
timeout: 120000,
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'
},
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] }
},
{
name: 'Google Chrome',
use: { ...devices['Desktop Chrome'], channel: 'chrome' }
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] }
},
{
name: 'webkit',
use: {
...devices['Desktop Safari'],
launchOptions: {
slowMo: 200
}
}
},
{
name: 'Microsoft Edge',
use: { ...devices['Desktop Edge'], channel: 'msedge' }
}
],
webServer: process.env.CI
? undefined
: {
command: 'npm run start',
url: 'http://localhost:4200',
reuseExistingServer: true,
timeout: 2 * 60 * 1000
}
});