UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

52 lines (40 loc) 1.43 kB
import { usePrevious, useIsInitialRender } from "../"; import { renderHook, cleanup } from "@testing-library/react-hooks"; describe("usePrevious", () => { it("renders", () => { const { result } = renderHook(() => usePrevious("test")); expect(result).toBeDefined(); cleanup(); }); it("Returns undefined on first call", () => { const firstCall = "foo"; const { result } = renderHook(() => usePrevious(firstCall)); expect(result.current).not.toBeDefined(); cleanup(); }); it("Returns previously passed value", () => { const firstFilm = "Reservoir Dogs"; const secondFilm = "True Romance"; const thirdFilm = "Pulp Fiction"; const { result, rerender } = renderHook(({ film }) => usePrevious(film), { initialProps: { film: firstFilm }, }); rerender({ film: secondFilm }); expect(result.current).toEqual(firstFilm); rerender({ film: thirdFilm }); expect(result.current).toEqual(secondFilm); cleanup(); }); }); describe("useIsInitialRender", () => { it("returns true if initial render", () => { const { result } = renderHook(() => useIsInitialRender()); expect(result.current).toBe(true); }); it("returns false if on the second render", () => { const { result, rerender } = renderHook(() => useIsInitialRender()); expect(result.current).toBe(true); rerender(); expect(result.current).toBe(false); }); });