41 lines
1.5 KiB
JavaScript
41 lines
1.5 KiB
JavaScript
const { defineConfig } = require("@playwright/test");
|
|
|
|
const port = Number(process.env.LUMI_UI_TEST_PORT || 3317);
|
|
|
|
module.exports = defineConfig({
|
|
testDir: "./tests/ui",
|
|
outputDir: "./test-results/ui",
|
|
timeout: 45_000,
|
|
expect: { timeout: 8_000 },
|
|
fullyParallel: false,
|
|
workers: 1,
|
|
retries: process.env.CI ? 1 : 0,
|
|
reporter: [["list"], ["html", { outputFolder: "test-results/ui-report", open: "never" }]],
|
|
use: {
|
|
baseURL: `http://127.0.0.1:${port}`,
|
|
trace: "retain-on-failure",
|
|
screenshot: "only-on-failure",
|
|
video: "retain-on-failure",
|
|
reducedMotion: "reduce"
|
|
},
|
|
webServer: {
|
|
command: "node tests/ui/fixture-server.js",
|
|
url: `http://127.0.0.1:${port}/health`,
|
|
timeout: 60_000,
|
|
reuseExistingServer: false,
|
|
env: {
|
|
...process.env,
|
|
PORT: String(port),
|
|
LUMI_UI_TEST_PORT: String(port),
|
|
NODE_ENV: "test"
|
|
}
|
|
},
|
|
projects: [
|
|
{ name: "phone-320", use: { browserName: "chromium", viewport: { width: 320, height: 720 }, isMobile: true, hasTouch: true } },
|
|
{ name: "phone-390", use: { browserName: "chromium", viewport: { width: 390, height: 844 }, isMobile: true, hasTouch: true } },
|
|
{ name: "tablet-768", use: { browserName: "chromium", viewport: { width: 768, height: 1024 }, hasTouch: true } },
|
|
{ name: "desktop-1280", use: { browserName: "chromium", viewport: { width: 1280, height: 900 } } },
|
|
{ name: "desktop-1920", use: { browserName: "chromium", viewport: { width: 1920, height: 1080 } } }
|
|
]
|
|
});
|