
* web: Update Sentry types. * web: Update MDX types. * web: Format. Remove unused script. * web: Clean up test types. * web: Fix label in dark mode.
124 lines
2.7 KiB
JavaScript
124 lines
2.7 KiB
JavaScript
/**
|
|
* @file WebdriverIO configuration file for **component unit tests**.
|
|
*
|
|
* @see https://webdriver.io/docs/configurationfile.html
|
|
*/
|
|
import { cwd } from "process";
|
|
import litCSS from "vite-plugin-lit-css";
|
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
|
|
import { addCommands } from "../commands.mjs";
|
|
|
|
const NODE_ENV = process.env.NODE_ENV || "development";
|
|
const headless = !!process.env.HEADLESS || !!process.env.CI;
|
|
const lemmeSee = !!process.env.WDIO_LEMME_SEE;
|
|
|
|
/**
|
|
* @type {WebdriverIO.Capabilities[]}
|
|
*/
|
|
const capabilities = [];
|
|
|
|
const DEFAULT_MAX_INSTANCES = 10;
|
|
|
|
let maxInstances = 1;
|
|
|
|
if (headless) {
|
|
maxInstances = process.env.MAX_INSTANCES
|
|
? parseInt(process.env.MAX_INSTANCES, 10)
|
|
: DEFAULT_MAX_INSTANCES;
|
|
}
|
|
|
|
if (!process.env.WDIO_SKIP_CHROME) {
|
|
/**
|
|
* @satisfies {WebdriverIO.Capabilities}
|
|
*/
|
|
const chromeBrowserConfig = {
|
|
"browserName": "chrome",
|
|
"goog:chromeOptions": {
|
|
args: ["disable-search-engine-choice-screen"],
|
|
},
|
|
};
|
|
|
|
if (headless) {
|
|
chromeBrowserConfig["goog:chromeOptions"].args.push(
|
|
"headless",
|
|
"disable-gpu",
|
|
"no-sandbox",
|
|
"window-size=1280,672",
|
|
"browser-test",
|
|
);
|
|
}
|
|
|
|
capabilities.push(chromeBrowserConfig);
|
|
}
|
|
|
|
if (process.env.WDIO_TEST_SAFARI) {
|
|
capabilities.push({
|
|
browserName: "safari",
|
|
});
|
|
}
|
|
|
|
if (process.env.WDIO_TEST_FIREFOX) {
|
|
capabilities.push({
|
|
browserName: "firefox",
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @type {WebdriverIO.BrowserRunnerOptions}
|
|
*/
|
|
const browserRunnerOptions = {
|
|
viteConfig: {
|
|
define: {
|
|
"process.env.NODE_ENV": JSON.stringify(NODE_ENV),
|
|
"process.env.CWD": JSON.stringify(cwd()),
|
|
"process.env.AK_API_BASE_PATH": JSON.stringify(process.env.AK_API_BASE_PATH || ""),
|
|
},
|
|
plugins: [
|
|
// ---
|
|
// @ts-ignore WDIO's Vite is out of date.
|
|
litCSS(),
|
|
// @ts-ignore WDIO's Vite is out of date.
|
|
tsconfigPaths(),
|
|
],
|
|
},
|
|
};
|
|
/**
|
|
* @satisfies {WebdriverIO.Config}
|
|
*/
|
|
export const config = {
|
|
runner: ["browser", browserRunnerOptions],
|
|
|
|
tsConfigPath: "./tsconfig.test.json",
|
|
|
|
specs: ["./src/**/*.test.ts"],
|
|
exclude: [],
|
|
|
|
maxInstances,
|
|
capabilities,
|
|
logLevel: "warn",
|
|
bail: 0,
|
|
waitforTimeout: 12000,
|
|
connectionRetryTimeout: 12000,
|
|
connectionRetryCount: 3,
|
|
|
|
framework: "mocha",
|
|
|
|
reporters: ["spec"],
|
|
|
|
mochaOpts: {
|
|
ui: "bdd",
|
|
timeout: 60000,
|
|
},
|
|
/**
|
|
* @param {WebdriverIO.Browser} browser
|
|
*/
|
|
before(_capabilities, _specs, browser) {
|
|
addCommands(browser);
|
|
},
|
|
|
|
afterTest() {
|
|
if (lemmeSee) return browser.pause(500);
|
|
},
|
|
};
|