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