feat: Add a simple mode to the visual card editor (#2588)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import {
|
||||
computeConfigChanges,
|
||||
computeDisplayedData,
|
||||
} from '../../../../src/components-lib/editor/form-data';
|
||||
import { getEditorModeForms } from '../../../../src/components-lib/editor/schema/editor-mode';
|
||||
import type { RawAdvancedCameraCardConfig } from '../../../../src/config/types';
|
||||
|
||||
const [MODE_FORM] = getEditorModeForms();
|
||||
|
||||
const isFullEditorShown = (config: RawAdvancedCameraCardConfig): unknown =>
|
||||
computeDisplayedData(MODE_FORM, config, {})['mode'];
|
||||
|
||||
const setFullEditorShown = (config: RawAdvancedCameraCardConfig, shown: boolean) =>
|
||||
computeConfigChanges(
|
||||
MODE_FORM,
|
||||
computeDisplayedData(MODE_FORM, config, {}),
|
||||
{ mode: shown },
|
||||
config,
|
||||
{},
|
||||
);
|
||||
|
||||
describe('the editor mode field', () => {
|
||||
it('should be on for a configuration asking for the full editor', () => {
|
||||
expect(isFullEditorShown({ editor: { mode: 'full' } })).toBe(true);
|
||||
});
|
||||
|
||||
it('should be off for a configuration asking for the simple editor', () => {
|
||||
expect(isFullEditorShown({ editor: { mode: 'simple' } })).toBe(false);
|
||||
});
|
||||
|
||||
it('should follow the editor chosen for a configuration that does not ask', () => {
|
||||
expect(isFullEditorShown({ type: 'custom:advanced-camera-card' })).toBe(false);
|
||||
expect(isFullEditorShown({ view: { dim: true } })).toBe(true);
|
||||
});
|
||||
|
||||
it('should ask for the full editor when turned on', () => {
|
||||
expect(setFullEditorShown({}, true)).toEqual([
|
||||
{ path: ['editor', 'mode'], type: 'set', value: 'full' },
|
||||
]);
|
||||
});
|
||||
|
||||
it('should ask for the simple editor when turned off', () => {
|
||||
expect(setFullEditorShown({ editor: { mode: 'full' } }, false)).toEqual([
|
||||
{ path: ['editor', 'mode'], type: 'set', value: 'simple' },
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user