1
0
mirror of https://github.com/home-assistant/frontend.git synced 2026-07-02 03:55:52 +01:00
Files
frontend/tsconfig.json
Bram Kragten 2c8d6c1a02 Add Playwright e2e tests for demo, test app, and gallery
Adds Playwright end-to-end tests covering three targets:
- the demo build
- a new lightweight test app exercising several scenarios (theming,
  admin/non-admin sidebar, panel navigation, more-info dialog)
- the component gallery

Includes the gulp/rspack build infra for the test app and an "E2E Tests"
GitHub Actions workflow that builds each target once, shares it via
artifacts, and runs the suites on Chromium and mobile Chrome. Browser
install is cached and retried to avoid intermittent download stalls.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 10:49:08 +02:00

164 lines
6.6 KiB
JSON

{
"compilerOptions": {
// Language Options
"target": "ES2021",
"lib": ["ES2021", "DOM", "DOM.Iterable", "WebWorker"],
"experimentalDecorators": true,
"useDefineForClassFields": false,
// Modules
"module": "ESNext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
// Babel handles transpiling and no need for declaration files
"noEmit": true,
// Caching
"incremental": true,
"tsBuildInfoFile": "node_modules/.cache/typescript/.tsbuildinfo",
// Type checking options
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"strict": true,
"noImplicitAny": false,
// Do not check type declaration files
"skipLibCheck": true,
// Interop with CommonJS and other tools
"esModuleInterop": true,
"isolatedModules": true,
"plugins": [
{
"name": "ts-lit-plugin",
"strict": true,
"rules": {
// Custom elements
"no-unknown-tag-name": "error",
"no-missing-import": "error",
"no-missing-element-type-definition": "error",
// Binding names
"no-unknown-attribute": "off",
"no-legacy-attribute": "error",
// Binding types
"no-incompatible-type-binding": "warning",
// LitElement
"no-property-visibility-mismatch": "error",
// CSS
"no-invalid-css": "off" // warning does not work
},
"globalTags": ["google-cast-launcher"]
}
],
"paths": {
"lit/static-html": ["./node_modules/lit/static-html.js"],
"lit/decorators": ["./node_modules/lit/decorators.js"],
"lit/directive": ["./node_modules/lit/directive.js"],
"lit/directives/until": ["./node_modules/lit/directives/until.js"],
"lit/directives/class-map": [
"./node_modules/lit/directives/class-map.js"
],
"lit/directives/style-map": [
"./node_modules/lit/directives/style-map.js"
],
"lit/directives/if-defined": [
"./node_modules/lit/directives/if-defined.js"
],
"lit/directives/guard": ["./node_modules/lit/directives/guard.js"],
"lit/directives/cache": ["./node_modules/lit/directives/cache.js"],
"lit/directives/repeat": ["./node_modules/lit/directives/repeat.js"],
"lit/directives/live": ["./node_modules/lit/directives/live.js"],
"lit/directives/keyed": ["./node_modules/lit/directives/keyed.js"],
"lit/polyfill-support": ["./node_modules/lit/polyfill-support.js"],
"@lit-labs/virtualizer/layouts/grid": [
"./node_modules/@lit-labs/virtualizer/layouts/grid.js"
],
"@lit-labs/virtualizer/polyfills/resize-observer-polyfill/ResizeObserver": [
"./node_modules/@lit-labs/virtualizer/polyfills/resize-observer-polyfill/ResizeObserver.js"
],
"@lit-labs/observers/resize-controller": [
"./node_modules/@lit-labs/observers/resize-controller.js"
],
"@formatjs/intl-durationformat/should-polyfill": [
"./node_modules/@formatjs/intl-durationformat/should-polyfill.js"
],
"@formatjs/intl-durationformat/polyfill-force": [
"./node_modules/@formatjs/intl-durationformat/polyfill-force.js"
],
"@formatjs/intl-datetimeformat/should-polyfill": [
"./node_modules/@formatjs/intl-datetimeformat/should-polyfill.js"
],
"@formatjs/intl-datetimeformat/polyfill-force": [
"./node_modules/@formatjs/intl-datetimeformat/polyfill-force.js"
],
"@formatjs/intl-displaynames/should-polyfill": [
"./node_modules/@formatjs/intl-displaynames/should-polyfill.js"
],
"@formatjs/intl-displaynames/polyfill-force": [
"./node_modules/@formatjs/intl-displaynames/polyfill-force.js"
],
"@formatjs/intl-getcanonicallocales/should-polyfill": [
"./node_modules/@formatjs/intl-getcanonicallocales/should-polyfill.js"
],
"@formatjs/intl-getcanonicallocales/polyfill-force": [
"./node_modules/@formatjs/intl-getcanonicallocales/polyfill-force.js"
],
"@formatjs/intl-listformat/should-polyfill": [
"./node_modules/@formatjs/intl-listformat/should-polyfill.js"
],
"@formatjs/intl-listformat/polyfill-force": [
"./node_modules/@formatjs/intl-listformat/polyfill-force.js"
],
"@formatjs/intl-locale/should-polyfill": [
"./node_modules/@formatjs/intl-locale/should-polyfill.js"
],
"@formatjs/intl-locale/polyfill-force": [
"./node_modules/@formatjs/intl-locale/polyfill-force.js"
],
"@formatjs/intl-numberformat/should-polyfill": [
"./node_modules/@formatjs/intl-numberformat/should-polyfill.js"
],
"@formatjs/intl-numberformat/polyfill-force": [
"./node_modules/@formatjs/intl-numberformat/polyfill-force.js"
],
"@formatjs/intl-pluralrules/should-polyfill": [
"./node_modules/@formatjs/intl-pluralrules/should-polyfill.js"
],
"@formatjs/intl-pluralrules/polyfill-force": [
"./node_modules/@formatjs/intl-pluralrules/polyfill-force.js"
],
"@formatjs/intl-relativetimeformat/should-polyfill": [
"./node_modules/@formatjs/intl-relativetimeformat/should-polyfill.js"
],
"@formatjs/intl-relativetimeformat/polyfill-force": [
"./node_modules/@formatjs/intl-relativetimeformat/polyfill-force.js"
],
"@formatjs/intl-pluralrules/locale-data/en": [
"./node_modules/@formatjs/intl-pluralrules/locale-data/en.js"
],
"@home-assistant/webawesome/dist/components/*": [
"./node_modules/@home-assistant/webawesome/dist/components/*"
],
"@home-assistant/webawesome/dist/events/*": [
"./node_modules/@home-assistant/webawesome/dist/events/*"
],
"@home-assistant/webawesome/dist/internal/*": [
"./node_modules/@home-assistant/webawesome/dist/internal/*"
],
"@lit-labs/virtualizer/virtualize": [
"./node_modules/@lit-labs/virtualizer/virtualize.js"
],
"@lit/reactive-element/reactive-controller": [
"./node_modules/@lit/reactive-element/reactive-controller.js"
],
"echarts/types/src/*": ["./node_modules/echarts/types/src/*.d.ts"],
"echarts/lib/*": ["./node_modules/echarts/lib/*"],
"home-assistant-js-websocket/dist/*": [
"./node_modules/home-assistant-js-websocket/dist/*"
],
"lit/directives/join": ["./node_modules/lit/directives/join.js"],
"lit/directives/ref": ["./node_modules/lit/directives/ref.js"]
}
},
// Exclude e2e tests — they have their own tsconfig that adds node types.
"exclude": ["test/e2e"]
}