mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.9 KiB
111 lines
2.9 KiB
import type { PlaywrightTestConfig } from '@playwright/test'; |
|
import { devices } from '@playwright/test'; |
|
|
|
/** |
|
* Read environment variables from file. |
|
* https://github.com/motdotla/dotenv |
|
*/ |
|
require('dotenv').config(); |
|
|
|
/** |
|
* See https://playwright.dev/docs/test-configuration. |
|
*/ |
|
const config: PlaywrightTestConfig = { |
|
testDir: process.env.PW_QUICK_TEST ? './quickTests' : './tests/db', |
|
/* Maximum time one test can run for. */ |
|
timeout: process.env.CI ? 140 * 1000 : 100 * 1000, |
|
expect: { |
|
/** |
|
* Maximum time expect() should wait for the condition to be met. |
|
* For example in `await expect(locator).toHaveText();` |
|
*/ |
|
timeout: 13000, |
|
}, |
|
/* Run tests in files in parallel */ |
|
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 ? 2 : 4, |
|
/* 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. */ |
|
use: { |
|
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ |
|
actionTimeout: 10000, |
|
/* Base URL to use in actions like `await page.goto('/')`. */ |
|
baseURL: 'http://localhost:3000', |
|
|
|
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ |
|
trace: process.env.CI ? 'on-first-retry' : process.env.TRACE ? 'on' : 'off', |
|
screenshot: 'only-on-failure', |
|
}, |
|
/* Configure projects for major browsers */ |
|
projects: [ |
|
{ |
|
name: 'chromium', |
|
use: { |
|
...devices['Desktop Chrome'], |
|
contextOptions: { |
|
// chromium-specific permissions |
|
permissions: ['clipboard-read', 'clipboard-write'], |
|
}, |
|
}, |
|
}, |
|
|
|
// { |
|
// 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: { |
|
// channel: 'msedge', |
|
// }, |
|
// }, |
|
// { |
|
// name: 'Google Chrome', |
|
// use: { |
|
// channel: 'chrome', |
|
// }, |
|
// }, |
|
], |
|
|
|
/* Folder for test artifacts such as screenshots, videos, traces, etc. */ |
|
outputDir: './output', |
|
|
|
/* Run your local dev server before starting the tests */ |
|
// webServer: { |
|
// command: 'npm run start', |
|
// port: 3000, |
|
// }, |
|
}; |
|
|
|
export default config;
|
|
|