fix: Honor configured home preset / merge presets. (#2553)

- Closes:
https://github.com/dermotduffy/advanced-camera-card/issues/2525
This commit is contained in:
Dermot Duffy
2026-06-30 17:45:13 -07:00
committed by dermotduffy
parent d833edb65b
commit 5c97e55a56
8 changed files with 243 additions and 10 deletions
@@ -507,6 +507,47 @@ describe('ReolinkCamera', () => {
zoomOut: ['continuous'],
});
});
it('should union configured presets with detected presets', async () => {
const config = createCameraConfig({
camera_entity: 'camera.office_reolink',
ptz: {
presets: {
home: {
action: 'perform-action',
perform_action: 'button.press',
target: { entity_id: 'button.office_guard' },
},
},
},
});
const camera = new ReolinkCamera(config, mock<CameraManagerEngine>());
await camera.initialize({
hassManager: createHASSManager({
hass: createHASS({
'select.office_reolink_ptz_preset': createStateEntity({
state: 'foo',
attributes: {
options: ['preset-one', 'preset-two'],
},
}),
}),
}),
entityRegistryManager: ptzPopulatedEntityRegistryManager,
deviceRegistryManager: mock<DeviceRegistryManager>(),
});
expect(camera.getCapabilities()?.getPTZCapabilities()).toEqual({
left: ['continuous'],
right: ['continuous'],
up: ['continuous'],
down: ['continuous'],
zoomIn: ['continuous'],
zoomOut: ['continuous'],
presets: ['home', 'preset-one', 'preset-two'],
});
});
});
});