jest.mock("jamplay-common/client/utils") jest.mock("react-dom") import * as React from "react" import { create } from "react-test-renderer" import { createRenderer } from "react-test-renderer/shallow" import ReviewList from "../ReviewList.component" import ConfirmDeleteReviewDialog from "../ConfirmDeleteReviewDialog.component" import { getReview } from "./index.stories" import { isElementOnScreen } from "jamplay-common/client/utils" Date.now = function now() { return 1530517594018 } describe("ReviewList", () => { it("ConfirmDialog should render correctly", () => { const t = create( ) expect(t.toJSON()).toMatchSnapshot() t.unmount() }) it("should render reviews with loading state correctly", () => { const t = create( ) expect(t.toJSON()).toMatchSnapshot() t.unmount() }) it("should load more if on screen", () => { const renderer = createRenderer() const onLoadMore = jest.fn(() => Promise.resolve()) renderer.render( ) const inst = renderer.getMountedInstance() as any inst.loadMoreChecker = {} const mock: jest.Mock = isElementOnScreen as any mock.mockImplementationOnce(() => false) inst.handleScroll() expect(mock).toBeCalled() expect(onLoadMore).not.toBeCalled() mock.mockImplementationOnce(() => true) inst.handleScroll() expect(onLoadMore).toBeCalled() }) })