@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
60 lines (44 loc) • 2.11 kB
text/typescript
/**
* @jest-environment jsdom
*/
import { renderHook } from "@testing-library/react";
import { useCurrenciesUnderFeatureFlag } from "../useCurrenciesUnderFeatureFlag";
import { useFeature } from "../../../featureFlags";
import useEnv from "../../../hooks/useEnv";
jest.mock("../../../featureFlags", () => ({ useFeature: jest.fn() }));
jest.mock("../../../hooks/useEnv", () => jest.fn());
const mockUseFeature = jest.mocked(useFeature);
const mockedEnvironment = jest.mocked(useEnv);
describe("useCurrenciesUnderFeatureFlag", () => {
beforeEach(() => {
jest.clearAllMocks();
});
it("should return empty deactivatedCurrencyIds when all features are enabled", () => {
mockedEnvironment.mockReturnValue(false);
mockUseFeature.mockReturnValue({ enabled: true });
const { result } = renderHook(() => useCurrenciesUnderFeatureFlag());
expect(result.current.deactivatedCurrencyIds.size).toEqual(0);
expect(result.current.featureFlaggedCurrencies).toBeDefined();
});
it("should include disabled currencies in deactivatedCurrencyIds", () => {
mockedEnvironment.mockReturnValue(false);
mockUseFeature.mockReturnValue({ enabled: false });
const { result } = renderHook(() => useCurrenciesUnderFeatureFlag());
expect(result.current.deactivatedCurrencyIds.size).toBeGreaterThan(0);
});
it("should return empty deactivatedCurrencyIds when MOCK is true", () => {
mockedEnvironment.mockReturnValue(true);
mockUseFeature.mockReturnValue({ enabled: false });
const { result } = renderHook(() => useCurrenciesUnderFeatureFlag());
expect(result.current.deactivatedCurrencyIds.size).toBe(0);
});
it("should contain currency mappings", () => {
mockedEnvironment.mockReturnValue(false);
mockUseFeature.mockReturnValue({ enabled: true });
const { result } = renderHook(() => useCurrenciesUnderFeatureFlag());
const currencies = result.current.featureFlaggedCurrencies;
expect(currencies).toHaveProperty("aptos");
expect(currencies).toHaveProperty("stacks");
expect(currencies).toHaveProperty("optimism");
});
});