diff --git a/packages/core/src/Subscribe.test.tsx b/packages/core/src/Subscribe.test.tsx index e383ae3..fcecc25 100644 --- a/packages/core/src/Subscribe.test.tsx +++ b/packages/core/src/Subscribe.test.tsx @@ -1,6 +1,6 @@ import { state } from "@rxstate/core" import { render, screen } from "@testing-library/react" -import React, { StrictMode, useState } from "react" +import React, { StrictMode, useState, useEffect } from "react" import { defer, EMPTY, NEVER, Observable, of, startWith } from "rxjs" import { bind, RemoveSubscribe, Subscribe as OriginalSubscribe } from "./" import { TestErrorBoundary } from "./test-helpers/TestErrorBoundary" @@ -266,6 +266,43 @@ describe("Subscribe", () => { expect(getByTestId("id").textContent).toBe("1") expect(getByTestId("value").textContent).toBe("1") }) + + it("on StrictMode: it doesn't crash if the component immediately unmounts", () => { + function App() { + const [switched, setSwitched] = useState(false) + + useEffect(() => { + setSwitched(true) + }, []) + + return ( +