84 lines
1.8 KiB
TypeScript
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,
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
);
|
|
});
|