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
+6 -10
View File
@@ -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', () => {
+2 -2
View File
@@ -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', () => {
+2 -2
View File
@@ -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', () => {
+2 -2
View File
@@ -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
View File
@@ -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', () => {