feat: Add UI support for PTZ presets (#1920)
- Closes #1889 Whilst a simple change theoretically, the card has such a collection of surfaces that can overlap other surfaces, it's challenging to get this to work right! There's a real chance this will have broken something z-index related (e.g. X overlaps Y when it should not), or (for related reasons) broken curver corners on the card.
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
createInternalCallbackAction,
|
||||
createLogAction,
|
||||
createMediaPlayerAction,
|
||||
createPerformAction,
|
||||
createPTZAction,
|
||||
createPTZControlsAction,
|
||||
createPTZDigitalAction,
|
||||
@@ -273,6 +274,24 @@ describe('createInternalCallbackAction', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('createPerformAction', () => {
|
||||
it('should create perform action', () => {
|
||||
expect(
|
||||
createPerformAction('toggle', {
|
||||
cardID: 'card_id',
|
||||
target: { entity_id: 'light.office_main_lights' },
|
||||
data: {},
|
||||
}),
|
||||
).toEqual({
|
||||
action: 'perform-action',
|
||||
perform_action: 'toggle',
|
||||
card_id: 'card_id',
|
||||
target: { entity_id: 'light.office_main_lights' },
|
||||
data: {},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('getActionConfigGivenAction', () => {
|
||||
const action = actionSchema.parse({
|
||||
action: 'fire-dom-event',
|
||||
@@ -293,6 +312,18 @@ describe('getActionConfigGivenAction', () => {
|
||||
expect(getActionConfigGivenAction('tap', { tap_action: action })).toBe(action);
|
||||
});
|
||||
|
||||
it('should handle default tap action without an entity', () => {
|
||||
expect(getActionConfigGivenAction('tap', {})).toBeNull();
|
||||
});
|
||||
|
||||
it('should handle default tap action with an entity', () => {
|
||||
expect(
|
||||
getActionConfigGivenAction('tap', { entity: 'light.office_main_lights' }),
|
||||
).toEqual({
|
||||
action: 'more-info',
|
||||
});
|
||||
});
|
||||
|
||||
it('should handle hold actions', () => {
|
||||
expect(getActionConfigGivenAction('hold', { hold_action: action })).toBe(action);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user