"use strict";
/** curl -X 'GET' \
  'https://swap.ledger.com/buy/v1/provider/currencies?currency=crypto' \
  -H 'accept: application/json' */
Object.defineProperty(exports, "__esModule", { value: true });
const helpers_1 = require("./helpers");
const apiData = {
    onRamp: {
        transak: ["near", "algorand", "avalanche", "tron"],
        coinify: [
            "ethereum",
            "bitcoin",
            "ethereum/erc20/usd__coin",
            "ethereum/erc20/shiba_inu",
            "polygon",
            "polygon/erc20/usd_coin_(pos)",
            "ethereum/erc20/ankr_network",
            "ethereum/erc20/decentraland_mana",
        ],
        moonpay: ["ethereum/erc20/aave", "cosmos", "stellar", "ripple"],
        mercuryo: ["ripple", "kusama", "near", "polygon", "solana", "stellar", "tron"],
        btcdirect: ["ethereum", "bitcoin", "solana", "stellar", "litecoin", "ripple"],
        paypal: ["bitcoin", "ethereum", "litecoin", "bitcoin_cash"],
        banxa: [
            "ethereum_classic",
            "ethereum/erc20/omg",
            "ethereum/erc20/sushi",
            "ethereum/erc20/uniswap",
        ],
        sardine: ["solana"],
        juno: ["bitcoin", "ethereum"],
        simplex: ["ethereum/erc20/vndc", "ethereum/erc20/wrapped_bitcoin", "ethereum/erc20/xy_oracle"],
        loopipay: ["bitcoin", "avalanche", "bsc"],
        ramp: ["bsc", "bsc/bep20/fevrtoken"],
    },
    offRamp: { coinify: ["bitcoin"] },
};
describe("RampCatalogProvider > getCryptoCurrencyIds()", () => {
    it("getCryptoCurrencyIds() should return all buyable crypto currency IDs as a single array", () => {
        const result = (0, helpers_1.getCryptoCurrencyIds)(apiData.onRamp);
        expect(result).toEqual([
            "near",
            "algorand",
            "avalanche",
            "tron",
            "ethereum",
            "bitcoin",
            "ethereum/erc20/usd__coin",
            "ethereum/erc20/shiba_inu",
            "polygon",
            "polygon/erc20/usd_coin_(pos)",
            "ethereum/erc20/ankr_network",
            "ethereum/erc20/decentraland_mana",
            "ethereum/erc20/aave",
            "cosmos",
            "stellar",
            "ripple",
            "kusama",
            "solana",
            "litecoin",
            "bitcoin_cash",
            "ethereum_classic",
            "ethereum/erc20/omg",
            "ethereum/erc20/sushi",
            "ethereum/erc20/uniswap",
            "ethereum/erc20/vndc",
            "ethereum/erc20/wrapped_bitcoin",
            "ethereum/erc20/xy_oracle",
            "bsc",
            "bsc/bep20/fevrtoken",
        ]);
    });
    it("returns null if no data", () => {
        const result = (0, helpers_1.getCryptoCurrencyIds)(null);
        expect(result).toEqual(null);
    });
    it("returns null if no data", () => {
        const result = (0, helpers_1.getCryptoCurrencyIds)({});
        expect(result).toEqual(null);
    });
});
describe("RampCatalogProvider > getRampStatusForCurrency()", () => {
    it("should return true for a currency that is supported by at least one provider", () => {
        const result = (0, helpers_1.isCurrencyInCatalog)("ethereum", apiData, "onRamp");
        expect(result).toEqual(true);
    });
    it("should return false for an offRamp currency search that is only supported by onRamp providers", () => {
        const result = (0, helpers_1.isCurrencyInCatalog)("ethereum", apiData, "offRamp");
        expect(result).toEqual(false);
    });
    it("should return false for a currency that is not supported by at least one provider", () => {
        const result = (0, helpers_1.isCurrencyInCatalog)("madeup/coin", apiData, "onRamp");
        expect(result).toEqual(false);
    });
});
describe("RampCatalogProvider > getRampServiceProviders()", () => {
    it("should return an array of onRamp providers that support the given currency", () => {
        const result = (0, helpers_1.getRampServiceProviders)("ethereum", apiData.onRamp);
        expect(result).toEqual(["coinify", "btcdirect", "paypal", "juno"]);
    });
    it("should return null if no API data in the catalog", () => {
        const result = (0, helpers_1.getRampServiceProviders)("ethereum", {});
        expect(result).toEqual(null);
    });
});
//# sourceMappingURL=helpers.test.js.map