@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
52 lines (40 loc) • 1.43 kB
JavaScript
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);
});
});