diff --git a/packages/lit-query/src/__tests__/BaseController.test.ts b/packages/lit-query/src/__tests__/BaseController.test.ts index a5a0e6b147..f754674a80 100644 --- a/packages/lit-query/src/__tests__/BaseController.test.ts +++ b/packages/lit-query/src/__tests__/BaseController.test.ts @@ -75,4 +75,26 @@ describe('BaseController', () => { controller.destroy() provider.remove() }) + + it('should resolve to a missing client without throwing when the host cannot dispatch events', async () => { + const host: ReactiveControllerHost = { + addController: () => {}, + removeController: () => {}, + requestUpdate: () => {}, + updateComplete: Promise.resolve(true), + } + + const controller = new RecordingController(host) + controller.hostConnected() + await vi.advanceTimersByTimeAsync(0) + expect(controller.lifecycle).toEqual([ + 'connected:missing', + 'changed:missing', + ]) + expect(() => controller.current).toThrow( + 'No QueryClient available. Pass one explicitly or render within QueryClientProvider.', + ) + + controller.destroy() + }) })