Files
Umbraco-CMS/src/Umbraco.Web.UI.Client/web-test-runner.config.mjs

79 lines
2.6 KiB
JavaScript
Raw Normal View History

2022-05-24 16:14:15 +02:00
import { esbuildPlugin } from '@web/dev-server-esbuild';
import { playwrightLauncher } from '@web/test-runner-playwright';
2022-10-18 14:03:42 +02:00
import { importMapsPlugin } from '@web/dev-server-import-maps';
import rollupCommonjs from '@rollup/plugin-commonjs';
import { fromRollup } from '@web/dev-server-rollup';
2024-02-10 23:05:05 +01:00
import { createImportMap } from './devops/importmap/index.js';
const commonjs = fromRollup(rollupCommonjs);
2022-05-24 16:14:15 +02:00
const mode = process.env.MODE || 'dev';
if (!['dev', 'prod'].includes(mode)) {
throw new Error(`MODE must be "dev" or "prod", was "${mode}"`);
}
2024-07-03 11:57:13 +02:00
const silencedLogs = ['Lit is in dev mode.', 'Multiple versions of Lit loaded.'];
/** @type {import('@web/dev-server').DevServerConfig} */
2022-05-24 16:14:15 +02:00
export default {
rootDir: '.',
files: ['./src/**/*.test.ts'],
nodeResolve: { exportConditions: mode === 'dev' ? ['development'] : [], preferBuiltins: false, browser: false },
2023-12-08 12:36:46 +01:00
browsers: [playwrightLauncher({ product: 'chromium' }), playwrightLauncher({ product: 'webkit' })],
2024-07-04 13:16:33 +02:00
coverageConfig: {
reporters: ['text-summary'],
},
2022-10-18 14:03:42 +02:00
plugins: [
importMapsPlugin({
inject: {
2024-02-10 23:05:05 +01:00
importMap: createImportMap({
rootDir: './src',
additionalImports: {
2023-04-12 17:05:14 +02:00
'@umbraco-cms/internal/test-utils': './utils/test-utils.ts',
2022-10-18 14:03:42 +02:00
},
replaceModuleExtensions: true,
2024-02-10 23:05:05 +01:00
}),
2022-10-18 14:03:42 +02:00
},
}),
commonjs({
2024-05-29 20:07:33 +02:00
include: ['node_modules/base64-js/**/*', 'node_modules/tinymce/**/*'],
}),
esbuildPlugin({ ts: true, tsconfig: './tsconfig.json', target: 'auto', json: true }),
2022-10-18 14:03:42 +02:00
],
2024-07-03 11:57:13 +02:00
filterBrowserLogs(log) {
for (const arg of log.args) {
if (typeof arg === 'string' && silencedLogs.some((l) => arg.includes(l))) {
return false;
}
}
return true;
},
2023-12-07 13:23:33 +01:00
testRunnerHtml: (testFramework, devMode) =>
`<html lang="en-us">
2022-08-10 12:03:01 +02:00
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
2023-05-25 10:55:09 +02:00
<link rel="icon" type="image/svg+xml" href="src/assets/favicon.svg" />
<title>Umbraco</title>
<base href="/" />
2023-12-07 13:23:33 +01:00
<script>
2023-12-07 14:03:13 +01:00
window.__UMBRACO_TEST_RUN_A11Y_TEST = ${(!devMode).toString()};
2023-12-07 13:23:33 +01:00
</script>
<script src="/node_modules/msw/lib/iife/index.js"></script>
<link rel="stylesheet" href="src/css/user-defined.css">
<link rel="stylesheet" href="node_modules/@umbraco-ui/uui-css/dist/uui-css.css">
2023-05-25 10:55:09 +02:00
<link rel="stylesheet" href="src/css/umb-css.css">
2024-05-29 20:07:33 +02:00
<script type="module">
import '@umbraco-cms/backoffice/components';
</script>
2022-08-10 12:03:01 +02:00
</head>
2022-05-24 16:14:15 +02:00
<body>
<script type="module" src="${testFramework}"></script>
<script type="module">
import 'element-internals-polyfill';
import '@umbraco-ui/uui';
2022-05-25 13:11:54 +02:00
</script>
2022-05-24 16:14:15 +02:00
</body>
</html>`,
};