refactor: Break apart monolithic configuration schema (#1977)
[skip ci]
This commit is contained in:
@@ -4,7 +4,7 @@ import { Camera } from '../../src/camera-manager/camera.js';
|
||||
import { GenericCameraManagerEngine } from '../../src/camera-manager/generic/engine-generic.js';
|
||||
import { CameraProxyConfig } from '../../src/camera-manager/types.js';
|
||||
import { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher.js';
|
||||
import { ProxyConfig } from '../../src/config/types.js';
|
||||
import { ProxyConfig } from '../../src/config/schema/cameras.js';
|
||||
import {
|
||||
callStateWatcherCallback,
|
||||
createCameraConfig,
|
||||
|
||||
@@ -4,9 +4,10 @@ import { CameraManagerEngineFactory } from '../../src/camera-manager/engine-fact
|
||||
import { FrigateCameraManagerEngine } from '../../src/camera-manager/frigate/engine-frigate';
|
||||
import { GenericCameraManagerEngine } from '../../src/camera-manager/generic/engine-generic';
|
||||
import { MotionEyeCameraManagerEngine } from '../../src/camera-manager/motioneye/engine-motioneye';
|
||||
import { ReolinkCameraManagerEngine } from '../../src/camera-manager/reolink/engine-reolink.js';
|
||||
import { Engine } from '../../src/camera-manager/types.js';
|
||||
import { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher.js';
|
||||
import { CardWideConfig } from '../../src/config/types.js';
|
||||
import { CardWideConfig } from '../../src/config/schema/types.js';
|
||||
import {
|
||||
createEntityRegistryCache,
|
||||
EntityRegistryManager,
|
||||
@@ -18,7 +19,6 @@ import {
|
||||
createRegistryEntity,
|
||||
createStateEntity,
|
||||
} from '../test-utils';
|
||||
import { ReolinkCameraManagerEngine } from '../../src/camera-manager/reolink/engine-reolink.js';
|
||||
|
||||
vi.mock('../../src/utils/ha/entity-registry');
|
||||
vi.mock('../../src/utils/ha/entity-registry/cache');
|
||||
|
||||
@@ -6,7 +6,7 @@ import { FrigateEventWatcher } from '../../../src/camera-manager/frigate/event-w
|
||||
import { getPTZInfo } from '../../../src/camera-manager/frigate/requests';
|
||||
import { FrigateEventChange } from '../../../src/camera-manager/frigate/types';
|
||||
import { StateWatcher } from '../../../src/card-controller/hass/state-watcher';
|
||||
import { CameraTriggerEventType } from '../../../src/config/types';
|
||||
import { CameraTriggerEventType } from '../../../src/config/schema/cameras';
|
||||
import { EntityRegistryManager } from '../../../src/utils/ha/registry/entity';
|
||||
import { Entity } from '../../../src/utils/ha/registry/entity/types';
|
||||
import { createCameraConfig, createHASS, createRegistryEntity } from '../../test-utils';
|
||||
|
||||
@@ -7,12 +7,10 @@ import {
|
||||
} from '../../../src/camera-manager/frigate/media';
|
||||
import { FrigateEvent, eventSchema } from '../../../src/camera-manager/frigate/types.js';
|
||||
import { StateWatcher } from '../../../src/card-controller/hass/state-watcher';
|
||||
import { PTZAction } from '../../../src/config/ptz';
|
||||
import {
|
||||
AdvancedCameraCardView,
|
||||
CameraConfig,
|
||||
RawAdvancedCameraCardConfig,
|
||||
} from '../../../src/config/types';
|
||||
import { PTZAction } from '../../../src/config/schema/actions/custom/ptz';
|
||||
import { CameraConfig } from '../../../src/config/schema/cameras';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/schema/common/const';
|
||||
import { RawAdvancedCameraCardConfig } from '../../../src/config/types';
|
||||
import {
|
||||
EntityRegistryManager,
|
||||
createEntityRegistryCache,
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
getRecordingMediaContentID,
|
||||
getRecordingTitle,
|
||||
} from '../../../src/camera-manager/frigate/util';
|
||||
import { CameraConfig } from '../../../src/config/types';
|
||||
import { CameraConfig } from '../../../src/config/schema/cameras';
|
||||
import {
|
||||
createCameraConfig,
|
||||
createFrigateEvent,
|
||||
|
||||
@@ -3,7 +3,8 @@ import { mock } from 'vitest-mock-extended';
|
||||
import { GenericCameraManagerEngine } from '../../../src/camera-manager/generic/engine-generic';
|
||||
import { Engine, QueryResultsType, QueryType } from '../../../src/camera-manager/types';
|
||||
import { StateWatcherSubscriptionInterface } from '../../../src/card-controller/hass/state-watcher';
|
||||
import { CameraConfig, RawAdvancedCameraCardConfig } from '../../../src/config/types';
|
||||
import { CameraConfig } from '../../../src/config/schema/cameras';
|
||||
import { RawAdvancedCameraCardConfig } from '../../../src/config/types';
|
||||
import {
|
||||
TestViewMedia,
|
||||
createCameraConfig,
|
||||
|
||||
@@ -27,7 +27,7 @@ import {
|
||||
} from '../../src/camera-manager/types.js';
|
||||
import { sortMedia } from '../../src/camera-manager/utils/sort-media.js';
|
||||
import { CardController } from '../../src/card-controller/controller.js';
|
||||
import { CameraConfig } from '../../src/config/types.js';
|
||||
import { CameraConfig } from '../../src/config/schema/cameras.js';
|
||||
import { HomeAssistant } from '../../src/ha/types.js';
|
||||
import { ViewMedia } from '../../src/view/media.js';
|
||||
import {
|
||||
|
||||
@@ -4,7 +4,7 @@ import { CameraManagerEngine } from '../../../src/camera-manager/engine';
|
||||
import { ReolinkCamera } from '../../../src/camera-manager/reolink/camera';
|
||||
import { CameraProxyConfig } from '../../../src/camera-manager/types';
|
||||
import { StateWatcher } from '../../../src/card-controller/hass/state-watcher';
|
||||
import { ProxyConfig } from '../../../src/config/types';
|
||||
import { ProxyConfig } from '../../../src/config/schema/cameras';
|
||||
import { EntityRegistryManager } from '../../../src/utils/ha/registry/entity';
|
||||
import { createCameraConfig, createHASS, createRegistryEntity } from '../../test-utils';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { getCameraEntityFromConfig } from '../../../src/camera-manager/utils/camera-entity-from-config.js';
|
||||
import { CameraConfig, cameraConfigSchema } from '../../../src/config/types.js';
|
||||
import { CameraConfig, cameraConfigSchema } from '../../../src/config/schema/cameras.js';
|
||||
|
||||
describe('getCameraEntityFromConfig', () => {
|
||||
const createCameraConfig = (config: Partial<CameraConfig>): CameraConfig => {
|
||||
|
||||
@@ -15,7 +15,7 @@ import {
|
||||
InteractionName,
|
||||
} from '../../../src/card-controller/actions/actions-manager';
|
||||
import { TemplateRenderer } from '../../../src/card-controller/templates';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/schema/common/const';
|
||||
import { createLogAction } from '../../../src/utils/action';
|
||||
import { createCardAPI, createConfig, createHASS, createView } from '../../test-utils';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { expect, it, vi } from 'vitest';
|
||||
import { InternalCallbackAction } from '../../../../src/card-controller/actions/actions/internal-callback';
|
||||
import { INTERNAL_CALLBACK_ACTION } from '../../../../src/config/types';
|
||||
import { INTERNAL_CALLBACK_ACTION } from '../../../../src/config/schema/actions/custom/internal';
|
||||
import { createCardAPI } from '../../../test-utils';
|
||||
|
||||
it('should handle internal callback action', async () => {
|
||||
|
||||
@@ -38,7 +38,8 @@ import { UnmuteAction } from '../../../src/card-controller/actions/actions/unmut
|
||||
import { URLAction } from '../../../src/card-controller/actions/actions/url';
|
||||
import { ViewAction } from '../../../src/card-controller/actions/actions/view';
|
||||
import { ActionFactory } from '../../../src/card-controller/actions/factory';
|
||||
import { ActionConfig, INTERNAL_CALLBACK_ACTION } from '../../../src/config/types';
|
||||
import { INTERNAL_CALLBACK_ACTION } from '../../../src/config/schema/actions/custom/internal';
|
||||
import { ActionConfig } from '../../../src/config/schema/actions/types';
|
||||
|
||||
// @vitest-environment jsdom
|
||||
describe('ActionFactory', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest';
|
||||
import { AutomationsManager } from '../../src/card-controller/automations-manager.js';
|
||||
import { ConditionStateManager } from '../../src/conditions/state-manager.js';
|
||||
import { ActionConfig } from '../../src/config/types.js';
|
||||
import { ActionConfig } from '../../src/config/schema/actions/types.js';
|
||||
import { createCardAPI } from '../test-utils.js';
|
||||
|
||||
describe('AutomationsManager', () => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { ZodError } from 'zod';
|
||||
import { ConfigManager } from '../../../src/card-controller/config/config-manager';
|
||||
import { InitializationAspect } from '../../../src/card-controller/initialization-manager';
|
||||
import { ConditionStateManager } from '../../../src/conditions/state-manager';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/types';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/schema/types';
|
||||
import { createCardAPI, flushPromises } from '../../test-utils';
|
||||
|
||||
describe('ConfigManager', () => {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { assert, describe, expect, it, vi } from 'vitest';
|
||||
import { setRemoteControlEntityFromConfig } from '../../../src/card-controller/config/load-control-entities';
|
||||
import { INTERNAL_CALLBACK_ACTION } from '../../../src/config/schema/actions/custom/internal';
|
||||
import { isAdvancedCameraCardCustomAction } from '../../../src/utils/action';
|
||||
import { createCardAPI, createConfig, createHASS, createStore } from '../../test-utils';
|
||||
import { INTERNAL_CALLBACK_ACTION } from '../../../src/config/types';
|
||||
|
||||
describe('setRemoteControlEntityFromConfig', () => {
|
||||
it('without control entity', () => {
|
||||
@@ -119,8 +120,9 @@ describe('setRemoteControlEntityFromConfig', () => {
|
||||
setRemoteControlEntityFromConfig(api);
|
||||
|
||||
const addOptionsAction = vi.mocked(api.getAutomationsManager().addAutomations).mock
|
||||
.calls[0][0][0].actions[0];
|
||||
expect(addOptionsAction.advanced_camera_card_action).toBe(INTERNAL_CALLBACK_ACTION);
|
||||
.calls[0][0][0].actions?.[0];
|
||||
assert(addOptionsAction && isAdvancedCameraCardCustomAction(addOptionsAction));
|
||||
assert(addOptionsAction.advanced_camera_card_action === INTERNAL_CALLBACK_ACTION);
|
||||
|
||||
addOptionsAction.callback(api);
|
||||
expect(hass.callService).toBeCalledWith(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { StatusBarItemManager } from '../../src/card-controller/status-bar-item-manager';
|
||||
import { StatusBarString } from '../../src/config/types';
|
||||
import { StatusBarString } from '../../src/config/schema/actions/types';
|
||||
import { MediaQueriesResults } from '../../src/view/media-queries-results';
|
||||
import {
|
||||
TestViewMedia,
|
||||
@@ -21,8 +21,7 @@ describe('StatusBarItemManager', () => {
|
||||
manager.addDynamicStatusBarItem(testItem);
|
||||
manager.addDynamicStatusBarItem(testItem);
|
||||
|
||||
expect(manager.calculateItems()).toContain(testItem);
|
||||
expect(manager.calculateItems().find((item) => item === testItem).length === 1);
|
||||
expect(manager.calculateItems()).toEqual([testItem]);
|
||||
});
|
||||
|
||||
it('should remove', () => {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { StyleManager } from '../../src/card-controller/style-manager';
|
||||
import { AdvancedCameraCardView, ThemeName } from '../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../src/config/schema/common/const';
|
||||
import { ThemeName } from '../../src/config/schema/view';
|
||||
import { createCardAPI, createConfig, createView } from '../test-utils';
|
||||
|
||||
// @vitest-environment jsdom
|
||||
|
||||
@@ -2,11 +2,8 @@ import { add } from 'date-fns';
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { CardController } from '../../src/card-controller/controller';
|
||||
import { TriggersManager } from '../../src/card-controller/triggers-manager';
|
||||
import {
|
||||
AdvancedCameraCardView,
|
||||
TriggersOptions,
|
||||
triggersSchema,
|
||||
} from '../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../src/config/schema/common/const';
|
||||
import { TriggersOptions, triggersSchema } from '../../src/config/schema/view';
|
||||
import {
|
||||
createCameraConfig,
|
||||
createCameraManager,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { ViewFactory } from '../../../src/card-controller/view/factory';
|
||||
import { ViewModifier } from '../../../src/card-controller/view/types';
|
||||
import { AdvancedCameraCardView, ViewDisplayMode } from '../../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/schema/common/const';
|
||||
import { ViewDisplayMode } from '../../../src/config/schema/common/display';
|
||||
import { View } from '../../../src/view/view';
|
||||
import {
|
||||
createCameraManager,
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
} from '../../../src/card-controller/view/types';
|
||||
import { ViewManager } from '../../../src/card-controller/view/view-manager';
|
||||
import { ViewQueryExecutor } from '../../../src/card-controller/view/view-query-executor';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/schema/common/const';
|
||||
import { ViewMedia } from '../../../src/view/media';
|
||||
import { EventMediaQueries } from '../../../src/view/media-queries';
|
||||
import { MediaQueriesResults } from '../../../src/view/media-queries-results';
|
||||
|
||||
@@ -3,7 +3,7 @@ import { mock } from 'vitest-mock-extended';
|
||||
import { applyViewModifiers } from '../../../src/card-controller/view/modifiers';
|
||||
import { QueryExecutor } from '../../../src/card-controller/view/query-executor';
|
||||
import { ViewQueryExecutor } from '../../../src/card-controller/view/view-query-executor';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../../src/config/schema/common/const';
|
||||
import {
|
||||
EventMediaQueries,
|
||||
RecordingMediaQueries,
|
||||
|
||||
@@ -12,12 +12,10 @@ import {
|
||||
MenuButtonController,
|
||||
MenuButtonControllerOptions,
|
||||
} from '../../src/components-lib/menu-button-controller.js';
|
||||
import {
|
||||
AdvancedCameraCardConfig,
|
||||
AdvancedCameraCardView,
|
||||
MenuItem,
|
||||
ViewDisplayMode,
|
||||
} from '../../src/config/types.js';
|
||||
import { AdvancedCameraCardView } from '../../src/config/schema/common/const.js';
|
||||
import { ViewDisplayMode } from '../../src/config/schema/common/display.js';
|
||||
import { MenuItem } from '../../src/config/schema/elements/custom/menu/types.js';
|
||||
import { AdvancedCameraCardConfig } from '../../src/config/schema/types.js';
|
||||
import { HomeAssistant } from '../../src/ha/types.js';
|
||||
import { MediaPlayerController } from '../../src/types.js';
|
||||
import { createGeneralAction, createViewAction } from '../../src/utils/action.js';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { MenuController } from '../../src/components-lib/menu-controller.js';
|
||||
import { SubmenuItem } from '../../src/components/submenu/types.js';
|
||||
import { MenuConfig, menuConfigSchema } from '../../src/config/types.js';
|
||||
import { MenuConfig, menuConfigSchema } from '../../src/config/schema/menu.js';
|
||||
import {
|
||||
createInteractionActionEvent,
|
||||
createLitElement,
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { Capabilities } from '../../../src/camera-manager/capabilities';
|
||||
import { PTZController } from '../../../src/components-lib/ptz/ptz-controller';
|
||||
import { PTZControlAction } from '../../../src/config/ptz';
|
||||
import { PTZControlsConfig, ptzControlsConfigSchema } from '../../../src/config/types';
|
||||
import { PTZControlAction } from '../../../src/config/schema/actions/custom/ptz';
|
||||
import {
|
||||
PTZControlsConfig,
|
||||
ptzControlsConfigSchema,
|
||||
} from '../../../src/config/schema/common/controls/ptz';
|
||||
import { createCameraManager, createCapabilities, createStore } from '../../test-utils';
|
||||
|
||||
const createConfig = (config?: Partial<PTZControlsConfig>): PTZControlsConfig => {
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest';
|
||||
import { StatusBarController } from '../../src/components-lib/status-bar-controller';
|
||||
import { StatusBarConfig, statusBarConfigSchema } from '../../src/config/types';
|
||||
import {
|
||||
StatusBarConfig,
|
||||
statusBarConfigSchema,
|
||||
} from '../../src/config/schema/status-bar';
|
||||
import { setOrRemoveAttribute } from '../../src/utils/basic';
|
||||
import { createInteractionActionEvent, createLitElement } from '../test-utils';
|
||||
|
||||
@@ -79,7 +82,7 @@ describe('StatusBarController', () => {
|
||||
const controller = new StatusBarController(host);
|
||||
const items = [
|
||||
{
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Test',
|
||||
},
|
||||
];
|
||||
@@ -92,22 +95,22 @@ describe('StatusBarController', () => {
|
||||
const host = createLitElement();
|
||||
const controller = new StatusBarController(host);
|
||||
const item1 = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 1',
|
||||
priority: 40,
|
||||
};
|
||||
const item2 = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 2',
|
||||
priority: 10,
|
||||
};
|
||||
const item3 = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 3',
|
||||
priority: 60,
|
||||
};
|
||||
const item4 = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 4',
|
||||
priority: undefined,
|
||||
};
|
||||
@@ -120,12 +123,12 @@ describe('StatusBarController', () => {
|
||||
const host = createLitElement();
|
||||
const controller = new StatusBarController(host);
|
||||
const item1 = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 1',
|
||||
priority: 100,
|
||||
};
|
||||
const exclusiveItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 2',
|
||||
priority: 1,
|
||||
exclusive: true,
|
||||
@@ -140,12 +143,12 @@ describe('StatusBarController', () => {
|
||||
const host = createLitElement();
|
||||
const controller = new StatusBarController(host);
|
||||
const insufficientItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 1',
|
||||
sufficient: false,
|
||||
};
|
||||
const sufficientItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 2',
|
||||
sufficient: true,
|
||||
};
|
||||
@@ -159,12 +162,12 @@ describe('StatusBarController', () => {
|
||||
const host = createLitElement();
|
||||
const controller = new StatusBarController(host);
|
||||
const insufficientItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 1',
|
||||
sufficient: false,
|
||||
};
|
||||
const sufficientItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 2',
|
||||
sufficient: false,
|
||||
};
|
||||
@@ -188,7 +191,7 @@ describe('StatusBarController', () => {
|
||||
);
|
||||
|
||||
const sufficientItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 1',
|
||||
priority: 100,
|
||||
sufficient: true,
|
||||
@@ -210,7 +213,7 @@ describe('StatusBarController', () => {
|
||||
);
|
||||
|
||||
const insufficientItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 1',
|
||||
priority: 100,
|
||||
sufficient: false,
|
||||
@@ -231,19 +234,19 @@ describe('StatusBarController', () => {
|
||||
);
|
||||
|
||||
const sufficientString = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'String',
|
||||
priority: 100,
|
||||
sufficient: true,
|
||||
};
|
||||
const sufficientIcon = {
|
||||
type: 'custom:advanced-camera-card-status-bar-icon',
|
||||
type: 'custom:advanced-camera-card-status-bar-icon' as const,
|
||||
icon: 'Icon',
|
||||
priority: 100,
|
||||
sufficient: true,
|
||||
};
|
||||
const sufficientImage = {
|
||||
type: 'custom:advanced-camera-card-status-bar-image',
|
||||
type: 'custom:advanced-camera-card-status-bar-image' as const,
|
||||
image: 'Image',
|
||||
priority: 100,
|
||||
sufficient: true,
|
||||
@@ -275,7 +278,7 @@ describe('StatusBarController', () => {
|
||||
);
|
||||
|
||||
const sufficientItem = {
|
||||
type: 'custom:advanced-camera-card-status-bar-string',
|
||||
type: 'custom:advanced-camera-card-status-bar-string' as const,
|
||||
string: 'Item 1',
|
||||
priority: 100,
|
||||
sufficient: true,
|
||||
|
||||
@@ -17,16 +17,12 @@ import {
|
||||
upgradeObjectRecursively,
|
||||
upgradeWithOverrides,
|
||||
} from '../../src/config/management.js';
|
||||
import { PTZControlAction } from '../../src/config/ptz.js';
|
||||
import {
|
||||
Actions,
|
||||
RawAdvancedCameraCardConfig,
|
||||
advancedCameraCardConfigSchema,
|
||||
} from '../../src/config/types.js';
|
||||
import {
|
||||
CallServiceActionConfig,
|
||||
PerformActionActionConfig,
|
||||
} from '../../src/ha/types.js';
|
||||
import { PTZControlAction } from '../../src/config/schema/actions/custom/ptz.js';
|
||||
import { CallServiceActionConfig } from '../../src/config/schema/actions/stock/call-service.js';
|
||||
import { PerformActionActionConfig } from '../../src/config/schema/actions/stock/perform-action.js';
|
||||
import { Actions } from '../../src/config/schema/actions/types.js';
|
||||
import { advancedCameraCardConfigSchema } from '../../src/config/schema/types.js';
|
||||
import { RawAdvancedCameraCardConfig } from '../../src/config/types.js';
|
||||
import { getParseErrorPaths } from '../../src/utils/zod.js';
|
||||
|
||||
describe('general functions', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect, it } from 'vitest';
|
||||
import { setProfiles } from '../../../src/config/profiles';
|
||||
import { CASTING_PROFILE } from '../../../src/config/profiles/casting';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/types';
|
||||
import { setProfiles } from '../../../src/config/profiles/set-profiles';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/schema/types';
|
||||
import { createRawConfig } from '../../test-utils';
|
||||
|
||||
it('should contain expected defaults', () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { ProfileType } from '../../../src/config/types';
|
||||
import { setProfiles } from '../../../src/config/profiles';
|
||||
import { setProfiles } from '../../../src/config/profiles/set-profiles';
|
||||
import { ProfileType } from '../../../src/config/schema/profiles';
|
||||
import { createConfig } from '../../test-utils';
|
||||
|
||||
describe('setProfiles', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect, it } from 'vitest';
|
||||
import { setProfiles } from '../../../src/config/profiles';
|
||||
import { LOW_PERFORMANCE_PROFILE } from '../../../src/config/profiles/low-performance';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/types';
|
||||
import { setProfiles } from '../../../src/config/profiles/set-profiles';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/schema/types';
|
||||
import { createRawConfig } from '../../test-utils';
|
||||
|
||||
it('should contain expected defaults', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect, it } from 'vitest';
|
||||
import { setProfiles } from '../../../src/config/profiles';
|
||||
import { SCRUBBING_PROFILE } from '../../../src/config/profiles/scrubbing';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/types';
|
||||
import { setProfiles } from '../../../src/config/profiles/set-profiles';
|
||||
import { advancedCameraCardConfigSchema } from '../../../src/config/schema/types';
|
||||
import { createRawConfig } from '../../test-utils';
|
||||
|
||||
it('should contain expected defaults', () => {
|
||||
|
||||
+21
-21
@@ -1,13 +1,11 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import {
|
||||
advancedCameraCardConditionSchema,
|
||||
advancedCameraCardCustomActionsBaseSchema,
|
||||
cameraConfigSchema,
|
||||
conditionalSchema,
|
||||
customSchema,
|
||||
dimensionsConfigSchema,
|
||||
statusBarActionConfigSchema,
|
||||
} from '../../src/config/types';
|
||||
import { advancedCameraCardCustomActionsBaseSchema } from '../../src/config/schema/actions/custom/base';
|
||||
import { statusBarActionConfigSchema } from '../../src/config/schema/actions/types';
|
||||
import { cameraConfigSchema } from '../../src/config/schema/cameras';
|
||||
import { advancedCameraCardConditionSchema } from '../../src/config/schema/conditions/types';
|
||||
import { dimensionsConfigSchema } from '../../src/config/schema/dimensions';
|
||||
import { customSchema } from '../../src/config/schema/elements/stock/custom';
|
||||
import { conditionalSchema } from '../../src/config/schema/elements/types';
|
||||
import { createConfig } from '../test-utils';
|
||||
|
||||
// @vitest-environment jsdom
|
||||
@@ -741,22 +739,24 @@ describe('config defaults', () => {
|
||||
{ condition: 'view', views: ['live'] },
|
||||
];
|
||||
|
||||
expect(
|
||||
createConfig({
|
||||
const elements = [
|
||||
{
|
||||
type: 'custom:advanced-camera-card-conditional',
|
||||
elements: [
|
||||
{
|
||||
type: 'custom:advanced-camera-card-conditional',
|
||||
elements: [
|
||||
{
|
||||
type: 'icon',
|
||||
icon: 'mdi:pig',
|
||||
},
|
||||
],
|
||||
conditions: conditions,
|
||||
type: 'icon',
|
||||
icon: 'mdi:pig',
|
||||
},
|
||||
],
|
||||
}).elements[0].conditions,
|
||||
).toEqual(conditions);
|
||||
conditions: conditions,
|
||||
},
|
||||
];
|
||||
|
||||
expect(
|
||||
createConfig({
|
||||
elements: elements,
|
||||
}).elements,
|
||||
).toEqual(elements);
|
||||
});
|
||||
|
||||
it('should include all stock actions', () => {
|
||||
|
||||
+7
-6
@@ -40,15 +40,16 @@ import { TriggersManager } from '../src/card-controller/triggers-manager';
|
||||
import { ViewManager } from '../src/card-controller/view/view-manager';
|
||||
import { SubmenuInteraction, SubmenuItem } from '../src/components/submenu/types';
|
||||
import { ConditionStateManager } from '../src/conditions/state-manager';
|
||||
import { CameraConfig, cameraConfigSchema } from '../src/config/schema/cameras';
|
||||
import {
|
||||
PerformanceConfig,
|
||||
performanceConfigSchema,
|
||||
} from '../src/config/schema/performance';
|
||||
import {
|
||||
AdvancedCameraCardConfig,
|
||||
CameraConfig,
|
||||
PerformanceConfig,
|
||||
RawAdvancedCameraCardConfig,
|
||||
advancedCameraCardConfigSchema,
|
||||
cameraConfigSchema,
|
||||
performanceConfigSchema,
|
||||
} from '../src/config/types';
|
||||
} from '../src/config/schema/types';
|
||||
import { RawAdvancedCameraCardConfig } from '../src/config/types';
|
||||
import { CurrentUser, HomeAssistant } from '../src/ha/types';
|
||||
import { CapabilitiesRaw, Interaction, MediaLoadedInfo } from '../src/types';
|
||||
import { HassStateDifference } from '../src/utils/ha';
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
import { ActionConfig, INTERNAL_CALLBACK_ACTION } from '../../src/config/types.js';
|
||||
import { INTERNAL_CALLBACK_ACTION } from '../../src/config/schema/actions/custom/internal.js';
|
||||
import { ActionConfig } from '../../src/config/schema/actions/types.js';
|
||||
import {
|
||||
createCameraAction,
|
||||
createDisplayModeAction,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { MEDIA_ACTION_NEGATIVE_CONDITIONS } from '../../../../../src/config/types';
|
||||
import { MEDIA_ACTION_NEGATIVE_CONDITIONS } from '../../../../../src/config/schema/common/media-actions';
|
||||
import { AutoLazyLoad } from '../../../../../src/utils/embla/plugins/auto-lazy-load/auto-lazy-load';
|
||||
import {
|
||||
callEmblaHandler,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { Capabilities } from '../../src/camera-manager/capabilities';
|
||||
import { AdvancedCameraCardView } from '../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../src/config/schema/common/const';
|
||||
import { IMAGE_VIEW_ZOOM_TARGET_SENTINEL } from '../../src/const';
|
||||
import {
|
||||
getPTZTarget,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import { AdvancedCameraCardView } from '../../src/config/types';
|
||||
import { AdvancedCameraCardView } from '../../src/config/schema/common/const';
|
||||
import { CapabilityKey } from '../../src/types';
|
||||
import { getCameraIDsForViewName } from '../../src/view/view-to-cameras';
|
||||
import {
|
||||
|
||||
Reference in New Issue
Block a user