UNPKG

@ic-wallet-kit/hpl

Version:
142 lines (141 loc) 5.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const mockConstrains_1 = require("../../../__tests_utils/mockConstrains"); const mockLogger_1 = require("../../../__tests_utils/mockLogger"); const seedToIdentity_1 = require("../../../__tests_utils/seedToIdentity"); const hplFtAssetCacheDataHandler_1 = require("../../../internalHandlers/cacheDataHandlers/hplFtAssetCacheDataHandler/hplFtAssetCacheDataHandler"); const repositories_1 = require("../../../repositories"); const common_1 = require("@ic-wallet-kit/common"); describe("Unit HplAccountCacheDataHandler tests", () => { const testData = [ { name: "get accounts from canister", input: { loadType: common_1.LoadType.Full }, data: { cacheData: undefined, service: { accounts: {}, ftAssets: { ftAssetLastId: BigInt(555), ftAssets: [{ assetId: BigInt(0), ftAssetInfo: { controller: "0x10", decimals: 0, description: "Default1", } }] }, virtualAccounts: {} } }, result: common_1.FormResult.success({ accounts: {}, ftAssets: { ftAssetLastId: BigInt(555), ftAssets: [{ assetId: BigInt(0), ftAssetInfo: { controller: "0x10", decimals: 0, description: "Default1", } }] }, virtualAccounts: {} }) }, { name: "get accounts from cache", input: { loadType: common_1.LoadType.Cache }, data: { cacheData: { accounts: {}, ftAssets: { ftAssetLastId: BigInt(40), ftAssets: [{ assetId: BigInt(0), ftAssetInfo: { controller: "2vxsx-fae", decimals: 0, description: "Default", } }] }, virtualAccounts: {} }, service: undefined }, result: common_1.FormResult.success({ ftAssetLastId: BigInt(40), ftAssets: [ { assetId: BigInt(0), ftAssetInfo: { controller: "2vxsx-fae", decimals: 0, description: "Default" } } ] }) }, { name: "get accounts from cache, cache is empty", input: { loadType: common_1.LoadType.Cache }, data: { cacheData: undefined, service: { accounts: {}, ftAssets: { ftAssetLastId: BigInt(33), ftAssets: [{ assetId: BigInt(444), ftAssetInfo: { controller: "0x11", decimals: 3, description: "Default3", } }] }, virtualAccounts: {} } }, result: common_1.FormResult.success({ accounts: {}, ftAssets: { ftAssetLastId: BigInt(33), ftAssets: [{ assetId: BigInt(444), ftAssetInfo: { controller: "0x11", decimals: 3, description: "Default3", } }] }, virtualAccounts: {} }) } ]; for (let test of testData) { it(test.name, async () => { jest.restoreAllMocks(); const identifierService = (0, seedToIdentity_1.seedToIdentifierService)("a"); const cacheRepository = new repositories_1.HplDataCacheRepository(); cacheRepository.getHplDataByCanisterId = jest.fn().mockReturnValue(test.data.cacheData); cacheRepository.setHplData = jest.fn().mockImplementation(() => { }); const logger = new mockLogger_1.MockLogger(); const hplFtAssetCacheDataHandler = new hplFtAssetCacheDataHandler_1.HplFtAssetCacheDataHandler(logger, identifierService, cacheRepository, mockConstrains_1.mockCanisterService); hplFtAssetCacheDataHandler.getExternalData = jest.fn().mockReturnValue(test.data.service); const result = await hplFtAssetCacheDataHandler.handle(test.input); expect(result).toEqual(test.result); }, 10000); } });