Merge branch 'main' into dev

This commit is contained in:
dermotduffy
2026-02-07 21:59:50 -08:00
17 changed files with 828 additions and 62 deletions
+28 -1
View File
@@ -1,4 +1,4 @@
import { afterEach, describe, expect, it, vi } from 'vitest';
import { afterEach, assert, describe, expect, it, vi } from 'vitest';
import {
FrigateEventChange,
FrigateReviewChange,
@@ -117,6 +117,33 @@ describe('FrigateEventWatcher', () => {
expect(unsubscribeCallback).toBeCalledTimes(1);
});
it('should handle unsubscribe during pending subscription', async () => {
const stateWatcher = new FrigateEventWatcher();
const hass = createHASS();
let resolveSubscription: ((callback: () => Promise<void>) => void) | undefined;
const subscriptionPromise = new Promise<() => Promise<void>>((resolve) => {
resolveSubscription = resolve;
});
vi.mocked(hass.connection.subscribeMessage).mockReturnValue(subscriptionPromise);
const request = {
instanceID: 'frigate',
callback: vi.fn(),
};
// Start subscription (doesn't complete yet as not awaited).
const subscribePromise = stateWatcher.subscribe(hass, request);
// Unsubscribe while subscription is still pending.
await stateWatcher.unsubscribe(request);
// Complete the subscription.
assert(resolveSubscription);
resolveSubscription(vi.fn());
await subscribePromise;
});
describe('should call handler', () => {
afterEach(() => {
vi.resetAllMocks();