import { esbuildPlugin } from '@web/dev-server-esbuild'; import { playwrightLauncher } from '@web/test-runner-playwright'; import { importMapsPlugin } from '@web/dev-server-import-maps'; import rollupCommonjs from '@rollup/plugin-commonjs'; import { fromRollup } from '@web/dev-server-rollup'; import { createImportMap } from './devops/importmap/index.js'; const commonjs = fromRollup(rollupCommonjs); const mode = process.env.MODE || 'dev'; if (!['dev', 'prod'].includes(mode)) { throw new Error(`MODE must be "dev" or "prod", was "${mode}"`); } /** @type {import('@web/dev-server').DevServerConfig} */ export default { rootDir: '.', files: ['./src/**/*.test.ts'], nodeResolve: { exportConditions: mode === 'dev' ? ['development'] : [], preferBuiltins: false, browser: true }, browsers: [playwrightLauncher({ product: 'chromium' }), playwrightLauncher({ product: 'webkit' })], coverageConfig: { reporters: ['lcovonly', 'text-summary'], }, plugins: [ esbuildPlugin({ ts: true, tsconfig: './tsconfig.json', target: 'auto', json: true }), importMapsPlugin({ inject: { importMap: createImportMap({ rootDir: './src', additionalImports: { '@umbraco-cms/internal/test-utils': './utils/test-utils.ts', }, replaceModuleExtensions: true, }), }, }), commonjs({ include: ['node_modules/**', 'src/external/**'], }), ], testRunnerHtml: (testFramework, devMode) => `