-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathweb-test.runner-config.mjs
50 lines (49 loc) · 1.33 KB
/
web-test.runner-config.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import { esbuildPlugin } from "@web/dev-server-esbuild";
import fg from "fast-glob";
import { playwrightLauncher } from "@web/test-runner-playwright";
export default {
rootDir: ".",
files: "src/**/*.test.ts", // "default" group
concurrentBrowsers: 3,
nodeResolve: {
exportConditions: ["production", "default"],
},
testFramework: {
config: {
timeout: 3000,
retries: 1,
},
},
plugins: [
esbuildPlugin({
ts: true,
target: "es2020",
}),
],
browsers: [
playwrightLauncher({ product: "chromium" }),
playwrightLauncher({ product: "firefox" }),
playwrightLauncher({ product: "webkit" }),
],
testRunnerHtml: (testFramework) => `
<html lang="en-US">
<head></head>
<body>
<script>
window.process = {env: { NODE_ENV: "production" }}
</script>
<script type="module" src="${testFramework}"></script>
</body>
</html>
`,
// Create a named group for every test file to enable running single tests. If a test file is `form.test.ts`
// then you can run `npm run test -- --group form` to run only that component's tests.
groups: fg.sync("src/**/*.test.ts").map((path) => {
const groupName = path.match(/^.*\/(?<fileName>.*)\.test\.ts/).groups
.fileName;
return {
name: groupName,
files: path,
};
}),
};