From a3b1e5f83400106822c0d84177b0b426c97b362f Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Mon, 2 Oct 2023 18:52:37 -0700 Subject: [PATCH] Fix trigger scan config issue. --- src/types.ts | 8 ++++---- src/utils/card-controller/controller.ts | 9 +++++---- tests/utils/card-controller/triggers-manager.test.ts | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/types.ts b/src/types.ts index 2c1c6dd8..f23458b0 100644 --- a/src/types.ts +++ b/src/types.ts @@ -779,10 +779,10 @@ const viewConfigDefault = { }, }; const scanSchema = z.object({ - enabled: z.boolean().default(viewConfigDefault.scan.enabled).optional(), - show_trigger_status: z.boolean().default(viewConfigDefault.scan.show_trigger_status).optional(), - untrigger_seconds: z.number().default(viewConfigDefault.scan.untrigger_seconds).optional(), - untrigger_reset: z.boolean().default(viewConfigDefault.scan.untrigger_reset).optional(), + enabled: z.boolean().default(viewConfigDefault.scan.enabled), + show_trigger_status: z.boolean().default(viewConfigDefault.scan.show_trigger_status), + untrigger_seconds: z.number().default(viewConfigDefault.scan.untrigger_seconds), + untrigger_reset: z.boolean().default(viewConfigDefault.scan.untrigger_reset), }); export type ScanOptions = z.infer; diff --git a/src/utils/card-controller/controller.ts b/src/utils/card-controller/controller.ts index 62874cdf..92faea9d 100644 --- a/src/utils/card-controller/controller.ts +++ b/src/utils/card-controller/controller.ts @@ -2,6 +2,7 @@ // TODO: Test HA state connection/disconnect logic in real life. // TODO: Should not need to import screenfull anywhere except the fullscreen manager. // TODO: executeMediaQueryForView should not need a HTMLElement host parameter see the view-manager.ts call in particular. +// TODO: Split out zod schema and add tests for config parsing (e.g. view.scan.show_status argument was missing) import { LovelaceCardEditor } from 'custom-card-helpers'; import { ReactiveController } from 'lit'; @@ -95,12 +96,12 @@ export class CardController protected _actionsManager = new ActionsManager(this); protected _automationsManager = new AutomationsManager(this); protected _autoUpdateManager = new AutoUpdateManager(this); - protected _cameraManager: CameraManager = new CameraManager(this); + protected _cameraManager = new CameraManager(this); protected _cameraURLManager = new CameraURLManager(this); protected _cardElementManager: CardElementManager; protected _conditionsManager: ConditionsManager; protected _configManager = new ConfigManager(this); - protected _downloadManager: DownloadManager = new DownloadManager(this); + protected _downloadManager = new DownloadManager(this); protected _expandManager = new ExpandManager(this); protected _fullscreenManager = new FullscreenManager(this); protected _hassManager = new HASSManager(this); @@ -112,7 +113,7 @@ export class CardController protected _microphoneManager = new MicrophoneManager(this); protected _queryStringManager = new QueryStringManager(this); protected _styleManager = new StyleManager(this); - protected _triggersManager: TriggersManager = new TriggersManager(this); + protected _triggersManager = new TriggersManager(this); protected _viewManager = new ViewManager(this); constructor( @@ -229,7 +230,7 @@ export class CardController return { cameras: [ { - camera_entity: cameraEntity ?? 'camera.demo' + camera_entity: cameraEntity ?? 'camera.demo', }, ], // Need to use 'as unknown' to convince Typescript that this really isn't a diff --git a/tests/utils/card-controller/triggers-manager.test.ts b/tests/utils/card-controller/triggers-manager.test.ts index d65c0724..69067757 100644 --- a/tests/utils/card-controller/triggers-manager.test.ts +++ b/tests/utils/card-controller/triggers-manager.test.ts @@ -18,7 +18,7 @@ vi.mock('../../../src/camera-manager/manager.js'); // Creating and mocking a trigger API is a lot of boilerplate, this convenience // function reduces it. const createTriggerAPI = (options?: { - config?: ScanOptions; + config?: Partial; hassStates?: HassEntities; interaction?: boolean; }) => {