refactor: Break apart monolithic configuration schema (#1977)

[skip ci]
This commit is contained in:
Dermot Duffy
2025-03-22 15:06:11 -07:00
committed by GitHub
parent 92fc8dd844
commit d6225fefda
266 changed files with 2789 additions and 2562 deletions
@@ -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 -1
View File
@@ -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,