@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
72 lines (53 loc) • 2.09 kB
text/typescript
import { isSwapOperationPending, getSwapAPIVersion } from ".";
import { getEnv, setEnv } from "@ledgerhq/live-env";
describe("swap/index", () => {
describe("isSwapOperationPending", () => {
test("should return false for ok status", () => {
const result = isSwapOperationPending("finished");
expect(result).toBe(false);
});
test("should return false for ko status", () => {
const result = isSwapOperationPending("refunded");
expect(result).toBe(false);
});
test("should return true for other status", () => {
const result = isSwapOperationPending("RANDOM_STATUS");
expect(result).toBe(true);
});
test("should return true if not status provided", () => {
/**
* Since this TS function can be used in loosly typed JS code, we need
* to test the case of the parameter not being provided
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const result = isSwapOperationPending();
expect(result).toBe(true);
});
});
describe("getSwapAPIVersion", () => {
const DEFAULT_SWAP_API_BASE = getEnv("SWAP_API_BASE");
afterEach(() => {
// Restore DEFAULT_SWAP_API_BASE
setEnv("SWAP_API_BASE", DEFAULT_SWAP_API_BASE);
});
test("should return version when SWAP_API_BASE contains one", () => {
const result = getSwapAPIVersion();
expect(result).toBe(5);
});
test("should throw an error if no version in SWAP_API_BASE", () => {
setEnv("SWAP_API_BASE", "https://swap.ledger.com");
expect(getSwapAPIVersion).toThrow(Error);
expect(getSwapAPIVersion).toThrow(
"Configured swap API base URL is invalid, should end with /v<number>",
);
});
test("should throw an error if version is NaN", () => {
setEnv("SWAP_API_BASE", "https://swap.ledger.com/vtest");
expect(getSwapAPIVersion).toThrow(Error);
expect(getSwapAPIVersion).toThrow(
"Configured swap API base URL is invalid, should end with /v<number>",
);
});
});
});