@ic-wallet-kit/hpl
Version:
Ic middleware wallet HPL protocol
585 lines (584 loc) • 20.2 kB
JavaScript
"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);
}
});