UNPKG

@ledgerhq/ledger-cal-service

Version:
205 lines 6.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const index_1 = require("./index"); const live_network_1 = __importDefault(require("@ledgerhq/live-network")); jest.mock("@ledgerhq/live-network"); const test = "test"; const prod = "prod"; beforeEach(() => { jest.resetModules(); jest.clearAllMocks(); }); describe("transformData", () => { it.each([ [ prod, { providera: { name: "ProviderA", publicKey: { curve: "secp256k1", data: Buffer.from("1234567890abcdef", "hex"), }, signature: Buffer.from("a1b2c3", "hex"), version: 2, }, providerb: { name: "ProviderB", publicKey: { curve: "secp256r1", data: Buffer.from("abcdef1234567890", "hex"), }, signature: Buffer.from("d4e5f6", "hex"), version: 2, }, }, ], [ test, { providera: { name: "ProviderA", publicKey: { curve: "secp256k1", data: Buffer.from("1234567890abcdef", "hex"), }, signature: Buffer.from("d1e2f3", "hex"), version: 2, }, providerb: { name: "ProviderB", publicKey: { curve: "secp256r1", data: Buffer.from("abcdef1234567890", "hex"), }, signature: Buffer.from("a9b8c7", "hex"), version: 2, }, }, ], ])("should transform providers data correctly with %p Ledger signature env", (ledgerSignatureEnv, expected) => { const providersData = [ { name: "ProviderA", partner_id: "providera", public_key: "1234567890abcdef", public_key_curve: "secp256k1", service_app_version: 2, descriptor: { data: "09abcd", signatures: { prod: "a1b2c3", test: "d1e2f3", }, }, }, { name: "ProviderB", partner_id: "providerb", public_key: "abcdef1234567890", public_key_curve: "secp256r1", service_app_version: 2, descriptor: { data: "ef0123", signatures: { prod: "d4e5f6", test: "a9b8c7", }, }, }, ]; const result = (0, index_1.transformData)(providersData, ledgerSignatureEnv); expect(result).toEqual(expected); }); it("should handle empty providers data", () => { const providersData = []; const expected = {}; const result = (0, index_1.transformData)(providersData); expect(result).toEqual(expected); }); }); describe("getProvidersData", () => { it.each([ [ prod, prod, { providera: { name: "ProviderA", publicKey: { curve: "secp256k1", data: Buffer.from("1234567890abcdef", "hex"), }, signature: Buffer.from("a1b2c3", "hex"), version: 2, }, }, ], [ prod, test, { providera: { name: "ProviderA", publicKey: { curve: "secp256k1", data: Buffer.from("1234567890abcdef", "hex"), }, signature: Buffer.from("a1b2c3", "hex"), version: 2, }, }, ], [ test, test, { providera: { name: "ProviderA", publicKey: { curve: "secp256k1", data: Buffer.from("1234567890abcdef", "hex"), }, signature: Buffer.from("d1e2f3", "hex"), version: 2, }, }, ], [ test, prod, { providera: { name: "ProviderA", publicKey: { curve: "secp256k1", data: Buffer.from("1234567890abcdef", "hex"), }, signature: Buffer.from("d1e2f3", "hex"), version: 2, }, }, ], ])("should fetch and transform providers data with %p Ledger signature env and %p partner signature", async (ledgerSignatureEnv, partnerSignatureEnv, expected) => { const mockProvidersData = [ { name: "ProviderA", partner_id: "providera", public_key: "1234567890abcdef", public_key_curve: "secp256k1", service_app_version: 2, descriptor: { data: "09abcd", signatures: { prod: "a1b2c3", test: "d1e2f3", }, }, }, ]; live_network_1.default.mockResolvedValue({ data: mockProvidersData }); const result = await (0, index_1.getProvidersData)({ type: "swap", ledgerSignatureEnv, partnerSignatureEnv, }); expect(live_network_1.default).toHaveBeenCalledWith({ method: "GET", url: "https://crypto-assets-service.api.ledger.com/v1/partners", params: { env: partnerSignatureEnv, output: "name,public_key,public_key_curve,service_app_version,descriptor,partner_id,env", service_name: "swap", }, }); expect(result).toEqual(expected); }); it("should handle errors when fetching data", async () => { live_network_1.default.mockRejectedValue(new Error("Network error")); await expect((0, index_1.getProvidersData)({ type: "swap" })).rejects.toThrow("Network error"); }); }); //# sourceMappingURL=index.test.js.map