diff --git a/desktop/src/lib/desktopNotifications.test.ts b/desktop/src/lib/desktopNotifications.test.ts index 69783946..e9deb983 100644 --- a/desktop/src/lib/desktopNotifications.test.ts +++ b/desktop/src/lib/desktopNotifications.test.ts @@ -344,7 +344,11 @@ describe('desktopNotifications', () => { it('forwards notification click targets from native and plugin listeners', async () => { const unlistenNative = vi.fn() - const unregisterPlugin = vi.fn() + const pluginListener = { + unregister: vi.fn(function (this: unknown) { + expect(this).toBe(pluginListener) + }), + } type NativeClickCallback = (event: { payload: unknown }) => void type PluginClickCallback = (notification: unknown) => void let nativeCallback: NativeClickCallback = () => { @@ -366,7 +370,7 @@ describe('desktopNotifications', () => { notificationPluginMock.onAction.mockImplementation(async (callback: (notification: unknown) => void) => { pluginCallback = callback pluginRegistered = true - return { unregister: unregisterPlugin } + return pluginListener }) const onTarget = vi.fn() @@ -382,7 +386,7 @@ describe('desktopNotifications', () => { cleanup() expect(unlistenNative).toHaveBeenCalledTimes(1) - expect(unregisterPlugin).toHaveBeenCalledTimes(1) + expect(pluginListener.unregister).toHaveBeenCalledTimes(1) }) it('requests OS-level window attention for blocking prompts', async () => { diff --git a/desktop/src/lib/desktopNotifications.ts b/desktop/src/lib/desktopNotifications.ts index 26450d76..d39f52d4 100644 --- a/desktop/src/lib/desktopNotifications.ts +++ b/desktop/src/lib/desktopNotifications.ts @@ -339,7 +339,7 @@ function disposePluginListener(listener: unknown): void { const unregister = listener && typeof listener === 'object' ? (listener as { unregister?: () => Promise | void }).unregister : undefined - if (unregister) void unregister() + if (typeof unregister === 'function') void unregister.call(listener) } export async function installDesktopNotificationClickListener(