Files
2026-07-08 10:43:39 -04:00

42 lines
1.1 KiB
JavaScript

/**
* Lit-component test runner for the panel UI.
*
* Runs in real Chromium (headless) but mounts components in isolation
* with mocked hass — no HA shell, no shadow-DOM-deep-piercing nightmares.
* Each test is ~10-50ms, the whole suite runs in seconds.
*
* npm test — one-shot
* npm run test:watch — watch mode
*/
import { esbuildPlugin } from "@web/dev-server-esbuild";
import { playwrightLauncher } from "@web/test-runner-playwright";
import { defaultReporter, summaryReporter } from "@web/test-runner";
export default {
files: "__tests__/**/*.test.ts",
nodeResolve: true,
plugins: [
esbuildPlugin({
ts: true,
json: true,
target: "es2020",
tsconfig: "./tsconfig.json",
}),
],
browsers: [
playwrightLauncher({
product: "chromium",
// Channel-less; uses bundled chromium from playwright cache.
}),
],
testFramework: {
config: { ui: "bdd", timeout: "5000" },
},
coverage: false,
reporters: [
summaryReporter(),
defaultReporter({ reportTestResults: true, reportTestProgress: true }),
],
};