From 08cd48ea4493f0f907aa8d216f211e3d631094c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Oliva?= Date: Wed, 8 Jul 2020 16:03:27 +0200 Subject: [PATCH] test(connectObservable): add test combining ErrorBoundary and Suspense --- test/connectObservable.test.tsx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/connectObservable.test.tsx b/test/connectObservable.test.tsx index d1267b23..e2b85461 100644 --- a/test/connectObservable.test.tsx +++ b/test/connectObservable.test.tsx @@ -266,6 +266,35 @@ describe("connectObservable", () => { ) }) + it("allows errors to be caught in error boundaries with suspense", () => { + const errStream = new Subject() + const [useError] = connectObservable(errStream) + + const ErrorComponent = () => { + const value = useError() + + return <>{value} + } + + const errorCallback = jest.fn() + render( + + Loading...}> + + + , + ) + + componentAct(() => { + errStream.error("controlled error") + }) + + expect(errorCallback).toHaveBeenCalledWith( + "controlled error", + expect.any(Object), + ) + }) + it("doesn't throw errors on components that will get unmounted on the next cycle", () => { const valueStream = new BehaviorSubject(1) const [useValue, value$] = connectObservable(valueStream)