@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
80 lines (69 loc) • 2.86 kB
text/typescript
/**
* @jest-environment jsdom
*/
import { PostOnboardingHubState } from "@ledgerhq/types-live";
import { renderHook } from "@testing-library/react";
import { useAllPostOnboardingActionsCompleted } from "./useAllPostOnboardingActionsCompleted";
import { claimTestMock, personalizeTestMock, migrateAssetsTestMock } from "../mock";
import { usePostOnboardingHubState } from "./usePostOnboardingHubState";
jest.mock("./usePostOnboardingHubState");
jest.mock("react-redux", () => ({}));
const mockedUsePostOnboardingHubState = jest.mocked(usePostOnboardingHubState);
const mockedStateNoActions: PostOnboardingHubState = {
deviceModelId: null,
lastActionCompleted: null,
actionsState: [],
postOnboardingInProgress: false,
};
const mockedStateAllActionsCompleted: PostOnboardingHubState = {
deviceModelId: null,
lastActionCompleted: null,
actionsState: [
{ ...claimTestMock, completed: true },
{ ...personalizeTestMock, completed: true },
{ ...migrateAssetsTestMock, completed: true },
],
postOnboardingInProgress: false,
};
const mockedStateNoActionsCompleted: PostOnboardingHubState = {
deviceModelId: null,
lastActionCompleted: null,
actionsState: [
{ ...claimTestMock, completed: false },
{ ...personalizeTestMock, completed: false },
{ ...migrateAssetsTestMock, completed: false },
],
postOnboardingInProgress: false,
};
const mockedStateSomeActionsCompleted: PostOnboardingHubState = {
deviceModelId: null,
lastActionCompleted: null,
actionsState: [
{ ...claimTestMock, completed: false },
{ ...personalizeTestMock, completed: true },
{ ...migrateAssetsTestMock, completed: false },
],
postOnboardingInProgress: false,
};
describe("useAllPostOnboardingActionsCompleted", () => {
it("should return true if no actions are present", () => {
mockedUsePostOnboardingHubState.mockReturnValue(mockedStateNoActions);
const { result } = renderHook(() => useAllPostOnboardingActionsCompleted());
expect(result.current).toBe(true);
});
it("should return true if all actions are completed", () => {
mockedUsePostOnboardingHubState.mockReturnValue(mockedStateAllActionsCompleted);
const { result } = renderHook(() => useAllPostOnboardingActionsCompleted());
expect(result.current).toBe(true);
});
it("should return false if some actions are completed", () => {
mockedUsePostOnboardingHubState.mockReturnValue(mockedStateSomeActionsCompleted);
const { result } = renderHook(() => useAllPostOnboardingActionsCompleted());
expect(result.current).toBe(false);
});
it("should return false if no actions are completed", () => {
mockedUsePostOnboardingHubState.mockReturnValue(mockedStateNoActionsCompleted);
const { result } = renderHook(() => useAllPostOnboardingActionsCompleted());
expect(result.current).toBe(false);
});
});