2023-02-26 01:30
This commit is contained in:
119
lit-element-starter-ts/web-test-runner.config.js
Normal file
119
lit-element-starter-ts/web-test-runner.config.js
Normal file
@@ -0,0 +1,119 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2021 Google LLC
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
import {legacyPlugin} from '@web/dev-server-legacy';
|
||||
import {playwrightLauncher} from '@web/test-runner-playwright';
|
||||
|
||||
// Uncomment for testing on Sauce Labs
|
||||
// Must run `npm i --save-dev @web/test-runner-saucelabs` and set
|
||||
// SAUCE_USERNAME and SAUCE_USERNAME environment variables
|
||||
// ===========
|
||||
// import {createSauceLabsLauncher} from '@web/test-runner-saucelabs';
|
||||
// const sauceLabsLauncher = createSauceLabsLauncher(
|
||||
// {
|
||||
// user: process.env.SAUCE_USERNAME,
|
||||
// key: process.env.SAUCE_USERNAME,
|
||||
// },
|
||||
// {
|
||||
// 'sauce:options': {
|
||||
// name: 'unit tests',
|
||||
// build: `${process.env.GITHUB_REF ?? 'local'} build ${
|
||||
// process.env.GITHUB_RUN_NUMBER ?? ''
|
||||
// }`,
|
||||
// },
|
||||
// }
|
||||
// );
|
||||
|
||||
// Uncomment for testing on BrowserStack
|
||||
// Must run `npm i --save-dev @web/test-runner-browserstack` and set
|
||||
// BROWSER_STACK_USERNAME and BROWSER_STACK_ACCESS_KEY environment variables
|
||||
// ===========
|
||||
// import {browserstackLauncher as createBrowserstackLauncher} from '@web/test-runner-browserstack';
|
||||
// const browserstackLauncher = (config) => createBrowserstackLauncher({
|
||||
// capabilities: {
|
||||
// 'browserstack.user': process.env.BROWSER_STACK_USERNAME,
|
||||
// 'browserstack.key': process.env.BROWSER_STACK_ACCESS_KEY,
|
||||
// project: 'my-element',
|
||||
// name: 'unit tests',
|
||||
// build: `${process.env.GITHUB_REF ?? 'local'} build ${
|
||||
// process.env.GITHUB_RUN_NUMBER ?? ''
|
||||
// }`,
|
||||
// ...config,
|
||||
// }
|
||||
// });
|
||||
|
||||
const browsers = {
|
||||
// Local browser testing via playwright
|
||||
// ===========
|
||||
chromium: playwrightLauncher({product: 'chromium'}),
|
||||
firefox: playwrightLauncher({product: 'firefox'}),
|
||||
webkit: playwrightLauncher({product: 'webkit'}),
|
||||
|
||||
// Uncomment example launchers for running on Sauce Labs
|
||||
// ===========
|
||||
// chromium: sauceLabsLauncher({browserName: 'chrome', browserVersion: 'latest', platformName: 'Windows 10'}),
|
||||
// firefox: sauceLabsLauncher({browserName: 'firefox', browserVersion: 'latest', platformName: 'Windows 10'}),
|
||||
// edge: sauceLabsLauncher({browserName: 'MicrosoftEdge', browserVersion: 'latest', platformName: 'Windows 10'}),
|
||||
// ie11: sauceLabsLauncher({browserName: 'internet explorer', browserVersion: '11.0', platformName: 'Windows 10'}),
|
||||
// safari: sauceLabsLauncher({browserName: 'safari', browserVersion: 'latest', platformName: 'macOS 10.15'}),
|
||||
|
||||
// Uncomment example launchers for running on Sauce Labs
|
||||
// ===========
|
||||
// chromium: browserstackLauncher({browserName: 'Chrome', os: 'Windows', os_version: '10'}),
|
||||
// firefox: browserstackLauncher({browserName: 'Firefox', os: 'Windows', os_version: '10'}),
|
||||
// edge: browserstackLauncher({browserName: 'MicrosoftEdge', os: 'Windows', os_version: '10'}),
|
||||
// ie11: browserstackLauncher({browserName: 'IE', browser_version: '11.0', os: 'Windows', os_version: '10'}),
|
||||
// safari: browserstackLauncher({browserName: 'Safari', browser_version: '14.0', os: 'OS X', os_version: 'Big Sur'}),
|
||||
};
|
||||
|
||||
// Prepend BROWSERS=x,y to `npm run test` to run a subset of browsers
|
||||
// e.g. `BROWSERS=chromium,firefox npm run test`
|
||||
const noBrowser = (b) => {
|
||||
throw new Error(`No browser configured named '${b}'; using defaults`);
|
||||
};
|
||||
let commandLineBrowsers;
|
||||
try {
|
||||
commandLineBrowsers = process.env.BROWSERS?.split(',').map(
|
||||
(b) => browsers[b] ?? noBrowser(b)
|
||||
);
|
||||
} catch (e) {
|
||||
console.warn(e);
|
||||
}
|
||||
|
||||
// https://modern-web.dev/docs/test-runner/cli-and-configuration/
|
||||
export default {
|
||||
rootDir: '.',
|
||||
files: ['./test/**/*_test.js'],
|
||||
nodeResolve: true,
|
||||
preserveSymlinks: true,
|
||||
browsers: commandLineBrowsers ?? Object.values(browsers),
|
||||
testFramework: {
|
||||
// https://mochajs.org/api/mocha
|
||||
config: {
|
||||
ui: 'tdd',
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
// Detect browsers without modules (e.g. IE11) and transform to SystemJS
|
||||
// (https://modern-web.dev/docs/dev-server/plugins/legacy/).
|
||||
legacyPlugin({
|
||||
polyfills: {
|
||||
webcomponents: true,
|
||||
// Inject lit's polyfill-support module into test files, which is required
|
||||
// for interfacing with the webcomponents polyfills
|
||||
custom: [
|
||||
{
|
||||
name: 'lit-polyfill-support',
|
||||
path: 'node_modules/lit/polyfill-support.js',
|
||||
test:
|
||||
"!('attachShadow' in Element.prototype) || !('getRootNode' in Element.prototype) || window.ShadyDOM && window.ShadyDOM.force",
|
||||
module: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user