Initial version of more advanced scan mode control.
This commit is contained in:
@@ -28,7 +28,7 @@ describe('QueryStringManager', () => {
|
||||
manager.executeAll();
|
||||
|
||||
expect(manager.hasViewRelatedActions()).toBeFalsy();
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewByParameters).not.toBeCalled();
|
||||
});
|
||||
|
||||
@@ -76,7 +76,7 @@ describe('QueryStringManager', () => {
|
||||
manager.executeAll();
|
||||
|
||||
expect(manager.hasViewRelatedActions()).toBeFalsy();
|
||||
expect(api.getActionsManager().executeAction).toBeCalledWith({
|
||||
expect(api.getActionsManager().executeFrigateAction).toBeCalledWith({
|
||||
action: 'fire-dom-event',
|
||||
card_id: 'id',
|
||||
frigate_card_action: action,
|
||||
@@ -97,7 +97,7 @@ describe('QueryStringManager', () => {
|
||||
expect(api.getViewManager().setViewDefault).toBeCalled();
|
||||
|
||||
expect(manager.hasViewRelatedActions()).toBeTruthy();
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewByParameters).not.toBeCalled();
|
||||
});
|
||||
|
||||
@@ -114,7 +114,7 @@ describe('QueryStringManager', () => {
|
||||
});
|
||||
|
||||
expect(manager.hasViewRelatedActions()).toBeTruthy();
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewDefault).not.toBeCalled();
|
||||
});
|
||||
|
||||
@@ -131,7 +131,7 @@ describe('QueryStringManager', () => {
|
||||
});
|
||||
|
||||
expect(manager.hasViewRelatedActions()).toBeTruthy();
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewDefault).not.toBeCalled();
|
||||
});
|
||||
|
||||
@@ -147,7 +147,7 @@ describe('QueryStringManager', () => {
|
||||
manager.executeAll();
|
||||
|
||||
expect(manager.hasViewRelatedActions()).toBeFalsy();
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewDefault).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewByParameters).not.toBeCalled();
|
||||
},
|
||||
@@ -165,7 +165,7 @@ describe('QueryStringManager', () => {
|
||||
manager.executeAll();
|
||||
|
||||
expect(manager.hasViewRelatedActions()).toBeFalsy();
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewDefault).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewByParameters).not.toBeCalled();
|
||||
expect(consoleSpy).toBeCalled();
|
||||
@@ -212,7 +212,7 @@ describe('QueryStringManager', () => {
|
||||
|
||||
manager.executeAll();
|
||||
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewDefault).not.toBeCalled();
|
||||
expect(api.getViewManager().setViewByParameters).not.toBeCalled();
|
||||
});
|
||||
@@ -296,77 +296,7 @@ describe('QueryStringManager', () => {
|
||||
|
||||
manager.executeViewRelated();
|
||||
|
||||
expect(api.getActionsManager().executeAction).not.toBeCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('should generate query string', () => {
|
||||
describe('that require no arguments', () => {
|
||||
it.each([
|
||||
['camera_ui' as const],
|
||||
['clip' as const],
|
||||
['clips' as const],
|
||||
['default' as const],
|
||||
['diagnostics' as const],
|
||||
['download' as const],
|
||||
['expand' as const],
|
||||
['image' as const],
|
||||
['live' as const],
|
||||
['menu_toggle' as const],
|
||||
['recording' as const],
|
||||
['recordings' as const],
|
||||
['snapshot' as const],
|
||||
['snapshots' as const],
|
||||
['timeline' as const],
|
||||
])('%s', (actionName: FrigateCardGeneralAction | FrigateCardUserSpecifiedView) => {
|
||||
const manager = new QueryStringManager(createCardAPI());
|
||||
expect(
|
||||
manager.generateQueryString({
|
||||
action: 'fire-dom-event',
|
||||
frigate_card_action: actionName,
|
||||
}),
|
||||
).toBe(`frigate-card-action.${actionName}=`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('that require camera argument', () => {
|
||||
it.each([['camera_select' as const], ['live_substream_select' as const]])(
|
||||
'%s',
|
||||
(actionName: 'camera_select' | 'live_substream_select') => {
|
||||
const manager = new QueryStringManager(createCardAPI());
|
||||
expect(
|
||||
manager.generateQueryString({
|
||||
action: 'fire-dom-event',
|
||||
frigate_card_action: actionName,
|
||||
camera: 'camera',
|
||||
}),
|
||||
).toBe(`frigate-card-action.${actionName}=camera`);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
it('that include a card_id', () => {
|
||||
const manager = new QueryStringManager(createCardAPI());
|
||||
expect(
|
||||
manager.generateQueryString({
|
||||
action: 'fire-dom-event',
|
||||
frigate_card_action: 'clips',
|
||||
card_id: 'card-id',
|
||||
}),
|
||||
).toBe(`frigate-card-action.card-id.clips=`);
|
||||
});
|
||||
|
||||
it('that include an unsupported action', () => {
|
||||
const spy = vi.spyOn(global.console, 'warn').mockReturnValue(undefined);
|
||||
const manager = new QueryStringManager(createCardAPI());
|
||||
|
||||
expect(
|
||||
manager.generateQueryString({
|
||||
action: 'fire-dom-event',
|
||||
frigate_card_action: 'microphone_unmute',
|
||||
}),
|
||||
).toBeNull();
|
||||
expect(spy).toBeCalled();
|
||||
expect(api.getActionsManager().executeFrigateAction).not.toBeCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user