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