@ic-wallet-kit/hpl
Version:
Ic middleware wallet HPL protocol
221 lines (220 loc) • 8.74 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 hplDictionaryCacheDataHandler_1 = require("../../../internalHandlers/cacheDataHandlers/hplDictionaryCacheDataHandler/hplDictionaryCacheDataHandler");
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,
},
result: [{
assetId: 9n,
creationTime: 1708803516699538823n,
logo: "",
modificationTime: 1708999855546228757n,
name: "Wrapped toy token",
symbol: "MYX.H"
},
{
assetId: 12n,
creationTime: 1708804657115229734n,
logo: "",
modificationTime: 1709000250392628622n,
name: "Wrapped ckBTC",
symbol: "ckBTC.H"
},
{
assetId: 10n,
creationTime: 1708804696491824815n,
logo: "",
modificationTime: 1709000260501657595n,
name: "Wrapped ckETH",
symbol: "ckETH.H"
},
{
assetId: 11n,
creationTime: 1708804726582723604n,
logo: "",
modificationTime: 1709000275024996100n,
name: "Wrapped ICP",
symbol: "ICP.H"
},
{
assetId: 0n,
creationTime: 1708914536288306446n,
logo: "",
modificationTime: 1708998770438006134n,
name: "Native toy token",
symbol: "ABC"
}
]
},
{
name: "get accounts from cache",
input: {
loadType: common_1.LoadType.Cache
},
data: {
cacheData: {
assetsDictionary: [{
assetId: 9n,
creationTime: 1708803516699538823n,
logo: "",
modificationTime: 1708999855546228757n,
name: "Wrapped toy token",
symbol: "MYX.H"
},
{
assetId: 12n,
creationTime: 1708804657115229734n,
logo: "",
modificationTime: 1709000250392628622n,
name: "Wrapped ckBTC",
symbol: "ckBTC.H"
},
{
assetId: 10n,
creationTime: 1708804696491824815n,
logo: "",
modificationTime: 1709000260501657595n,
name: "Wrapped ckETH",
symbol: "ckETH.H"
},
{
assetId: 11n,
creationTime: 1708804726582723604n,
logo: "",
modificationTime: 1709000275024996100n,
name: "Wrapped ICP",
symbol: "ICP.H"
},
{
assetId: 0n,
creationTime: 1708914536288306446n,
logo: "",
modificationTime: 1708998770438006134n,
name: "Native toy token",
symbol: "ABC"
}]
}
},
result: [{
assetId: 9n,
creationTime: 1708803516699538823n,
logo: "",
modificationTime: 1708999855546228757n,
name: "Wrapped toy token",
symbol: "MYX.H"
},
{
assetId: 12n,
creationTime: 1708804657115229734n,
logo: "",
modificationTime: 1709000250392628622n,
name: "Wrapped ckBTC",
symbol: "ckBTC.H"
},
{
assetId: 10n,
creationTime: 1708804696491824815n,
logo: "",
modificationTime: 1709000260501657595n,
name: "Wrapped ckETH",
symbol: "ckETH.H"
},
{
assetId: 11n,
creationTime: 1708804726582723604n,
logo: "",
modificationTime: 1709000275024996100n,
name: "Wrapped ICP",
symbol: "ICP.H"
},
{
assetId: 0n,
creationTime: 1708914536288306446n,
logo: "",
modificationTime: 1708998770438006134n,
name: "Native toy token",
symbol: "ABC"
}]
},
{
name: "get accounts from cache, cache is empty",
input: {
loadType: common_1.LoadType.Cache
},
data: {
cacheData: undefined,
},
result: [{
assetId: 9n,
creationTime: 1708803516699538823n,
logo: "",
modificationTime: 1708999855546228757n,
name: "Wrapped toy token",
symbol: "MYX.H"
},
{
assetId: 12n,
creationTime: 1708804657115229734n,
logo: "",
modificationTime: 1709000250392628622n,
name: "Wrapped ckBTC",
symbol: "ckBTC.H"
},
{
assetId: 10n,
creationTime: 1708804696491824815n,
logo: "",
modificationTime: 1709000260501657595n,
name: "Wrapped ckETH",
symbol: "ckETH.H"
},
{
assetId: 11n,
creationTime: 1708804726582723604n,
logo: "",
modificationTime: 1709000275024996100n,
name: "Wrapped ICP",
symbol: "ICP.H"
},
{
assetId: 0n,
creationTime: 1708914536288306446n,
logo: "",
modificationTime: 1708998770438006134n,
name: "Native toy token",
symbol: "ABC"
}]
}
];
for (let test of testData) {
it(test.name, async () => {
jest.restoreAllMocks();
const identifierService = (0, seedToIdentity_1.seedToIdentifierService)("a");
const cacheRepository = new repositories_1.HplDictionaryCacheRepository();
cacheRepository.getHplDictionaryByCanisterId = jest.fn().mockReturnValue(test.data.cacheData);
cacheRepository.setHplDictionary = jest.fn().mockReturnValue(undefined);
const logger = new mockLogger_1.MockLogger();
const hplDictionaryCacheDataHandler = new hplDictionaryCacheDataHandler_1.HplDictionaryCacheDataHandler(logger, identifierService, cacheRepository, mockConstrains_1.mockCanisterService);
const result = await hplDictionaryCacheDataHandler.handle(test.input);
let formatedResult = result.data?.assetsDictionary.map((a) => {
return {
...a,
logo: ""
};
});
expect(formatedResult).toEqual(test.result);
}, 10000);
}
});