Files
advanced-camera-card/tests/components-lib/zoom/zoom-view-context.test.ts
T

84 lines
1.8 KiB
TypeScript

import { describe, expect, it, vi } from 'vitest';
import {
generateViewContextForZoom,
handleZoomSettingsObservedEvent,
} from '../../../src/components-lib/zoom/zoom-view-context';
describe('generateViewContextForZoom', () => {
it('with observed', () => {
expect(
generateViewContextForZoom('target', {
observed: {
pan: { x: 1, y: 2 },
zoom: 3,
isDefault: true,
unzoomed: true,
},
}),
).toEqual({
zoom: {
target: {
observed: {
pan: { x: 1, y: 2 },
zoom: 3,
isDefault: true,
unzoomed: true,
},
requested: null,
},
},
});
});
it('with requested', () => {
expect(
generateViewContextForZoom('target', {
requested: {
pan: { x: 1, y: 2 },
zoom: 3,
},
}),
).toEqual({
zoom: {
target: {
requested: {
pan: { x: 1, y: 2 },
zoom: 3,
},
},
},
});
});
});
// @vitest-environment jsdom
it('handleZoomSettingsObservedEvent', () => {
const element = document.createElement('div');
const callback = vi.fn();
element.addEventListener('frigate-card:view:change-context', callback);
handleZoomSettingsObservedEvent(
element,
new CustomEvent('frigate-card:zoom:change', {
detail: {
pan: { x: 1, y: 2 },
zoom: 3,
isDefault: true,
unzoomed: true,
},
}),
'target',
);
expect(callback).toBeCalledWith(
expect.objectContaining({
detail: {
zoom: {
target: {
observed: { pan: { x: 1, y: 2 }, zoom: 3, isDefault: true, unzoomed: true },
requested: null,
},
},
},
}),
);
});