UNPKG

@mittwald/react-use-promise

Version:

Simple and declarative use of Promises in your React components. Observe their state and refresh them in various advanced ways.

37 lines (36 loc) 1.18 kB
import { beforeEach, expect, jest, test } from "@jest/globals"; import { sleep } from "../lib/testing.js"; import { getAsyncResource } from "./getAsyncResource.js"; import { asyncResourceStore } from "./store.js"; const sleepTime = 2000; beforeEach(() => { jest.useFakeTimers(); asyncResourceStore.clear(); }); afterEach(() => { jest.runOnlyPendingTimers(); jest.useRealTimers(); }); const loader = jest.fn(async (value) => { await sleep(sleepTime); return value; }); const load = async (resource) => { const loadingPromise = resource.load(); jest.advanceTimersToNextTimer(); await loadingPromise; }; test("Expect loader is not called when parameters is null", async () => { const resource = getAsyncResource(loader, null); await load(resource); expect(loader).not.toHaveBeenCalled(); }); test("Expect value is undefined when parameters is null", async () => { const resource = getAsyncResource(loader, null); await load(resource); const value = resource.value.value.isSet ? resource.value.value.value : undefined; expect(resource.value.value.isSet).toBe(true); expect(value).toBe(undefined); });