UNPKG

@ic-wallet-kit/hpl

Version:
585 lines (584 loc) 20.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const mockLogger_1 = require("../../../__tests_utils/mockLogger"); const seedToIdentity_1 = require("../../../__tests_utils/seedToIdentity"); const hplAdminStateCacheDataHandler_1 = require("../../../internalHandlers/cacheDataHandlers/hplAdminStateCacheDataHandlers/hplAdminStateCacheDataHandler"); const repositories_1 = require("../../../repositories"); const service_1 = require("../../../service"); const common_1 = require("@ic-wallet-kit/common"); describe("Unit HplFtSuppliesStateCacheDataHandler tests", () => { const testData = [ { name: "get accounts state from canister", input: { accountCount: BigInt(0), ftAssetCount: BigInt(0), virtualAccountCount: BigInt(0), remoteAccounts: [], loadType: common_1.LoadType.Full }, data: { cacheData: undefined, }, result: common_1.FormResult.success({ accounts: [ { accountId: BigInt(0), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(1), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(2), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(3), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(4), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(5), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(6), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(7), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(8), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(9), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(10), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(11), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(12), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(13), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(14), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(15), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(16), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(17), accountState: { ft: 346n, }, }, { accountId: BigInt(18), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(19), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(20), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(21), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(22), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(23), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(24), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(25), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(26), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(27), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(28), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(29), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(30), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(31), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(32), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(33), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(34), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(35), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(36), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(37), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(38), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(39), accountState: { ft: BigInt(0), }, }, ], ftSupplies: [], remoteAccounts: [], virtualAccounts: [], }) }, { name: "get accounts state from cache", input: { accountCount: BigInt(0), ftAssetCount: BigInt(40), virtualAccountCount: BigInt(0), remoteAccounts: [], loadType: common_1.LoadType.Cache }, data: { cacheData: { accounts: [ { accountId: BigInt(0), accountState: { ft: BigInt(0), }, } ], ftSupplies: [], remoteAccounts: [], virtualAccounts: [], }, }, result: common_1.FormResult.success({ accounts: [ { accountId: BigInt(0), accountState: { ft: BigInt(0), }, }, ], ftSupplies: [], remoteAccounts: [], virtualAccounts: [], }) }, { name: "get accounts state from cache, cache is empty", input: { accountCount: BigInt(0), ftAssetCount: BigInt(40), virtualAccountCount: BigInt(0), remoteAccounts: [], loadType: common_1.LoadType.Cache }, data: { cacheData: undefined, }, result: common_1.FormResult.success({ accounts: [ { accountId: BigInt(0), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(1), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(2), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(3), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(4), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(5), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(6), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(7), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(8), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(9), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(10), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(11), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(12), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(13), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(14), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(15), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(16), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(17), accountState: { ft: 346n, }, }, { accountId: BigInt(18), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(19), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(20), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(21), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(22), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(23), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(24), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(25), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(26), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(27), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(28), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(29), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(30), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(31), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(32), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(33), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(34), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(35), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(36), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(37), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(38), accountState: { ft: BigInt(0), }, }, { accountId: BigInt(39), accountState: { ft: BigInt(0), }, }, ], ftSupplies: [], remoteAccounts: [], virtualAccounts: [], }) } ]; for (let test of testData) { it(test.name, async () => { jest.restoreAllMocks(); const identifierService = (0, seedToIdentity_1.seedToIdentifierService)("a"); const canisterService = new service_1.CanisterService("rqx66-eyaaa-aaaap-aaona-cai", "lpwlq-2iaaa-aaaap-ab2vq-cai", "n65ik-oqaaa-aaaag-acb4q-cai"); const cacheRepository = new repositories_1.HplStateCacheRepository(); cacheRepository.getHplAdminState = jest.fn().mockReturnValue(test.data.cacheData); cacheRepository.setHplAdminState = jest.fn().mockReturnValue(undefined); const logger = new mockLogger_1.MockLogger(); const hplAdminStateCacheDataHandler = new hplAdminStateCacheDataHandler_1.HplAdminStateCacheDataHandler(logger, identifierService, cacheRepository, canisterService); const result = await hplAdminStateCacheDataHandler.handle(test.input); expect(result).toEqual(test.result); }, 10000); } });