UNPKG

@octopusdeploy/design-system-components

Version:
52 lines (51 loc) 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const testing_library_1 = require("@octopusdeploy/testing-library"); const react_1 = require("@testing-library/react"); const vitest_1 = require("vitest"); const useIsBusy_1 = require("../useIsBusy"); (0, vitest_1.describe)("useIsBusy", () => { (0, vitest_1.it)("should return true for a pending promise", () => { const { promise } = (0, testing_library_1.createControlledPromise)(); const { result } = (0, react_1.renderHook)(() => (0, useIsBusy_1.useIsBusy)(promise)); (0, vitest_1.expect)(result.current).toBe(true); }); (0, vitest_1.it)("should return false for a resolved promise", async () => { const { promise, resolve } = (0, testing_library_1.createControlledPromise)(); const { result } = (0, react_1.renderHook)(() => (0, useIsBusy_1.useIsBusy)(promise)); await resolve(); (0, vitest_1.expect)(result.current).toBe(false); }); (0, vitest_1.it)("should return false for a rejected promise", async () => { const { promise, reject } = (0, testing_library_1.createControlledPromise)(); const { result } = (0, react_1.renderHook)(() => (0, useIsBusy_1.useIsBusy)(promise)); await reject(); (0, vitest_1.expect)(result.current).toBe(false); }); (0, vitest_1.it)("should return true for a true boolean", () => { const { result } = (0, react_1.renderHook)(() => (0, useIsBusy_1.useIsBusy)(true)); (0, vitest_1.expect)(result.current).toBe(true); }); (0, vitest_1.it)("should return false for a false boolean", () => { const { result } = (0, react_1.renderHook)(() => (0, useIsBusy_1.useIsBusy)(false)); (0, vitest_1.expect)(result.current).toBe(false); }); (0, vitest_1.describe)("when the promise value changes", () => { (0, vitest_1.it)("should return true if the latest promise is pending while the original promise has resolved", async () => { const { promise: originalPromise, resolve: resolveOriginalPromise } = (0, testing_library_1.createControlledPromise)(); const { promise: latestPromise } = (0, testing_library_1.createControlledPromise)(); const { result, rerender } = (0, react_1.renderHook)(({ promise }) => (0, useIsBusy_1.useIsBusy)(promise), { initialProps: { promise: originalPromise } }); rerender({ promise: latestPromise }); await resolveOriginalPromise(); (0, vitest_1.expect)(result.current).toBe(true); }); (0, vitest_1.it)("should return false if the latest promise is resolved while the original promise is pending", async () => { const { promise: originalPromise } = (0, testing_library_1.createControlledPromise)(); const { promise: latestPromise, resolve: resolveLatestPromise } = (0, testing_library_1.createControlledPromise)(); const { result, rerender } = (0, react_1.renderHook)(({ promise }) => (0, useIsBusy_1.useIsBusy)(promise), { initialProps: { promise: originalPromise } }); rerender({ promise: latestPromise }); await resolveLatestPromise(); (0, vitest_1.expect)(result.current).toBe(false); }); }); });