test-ic-wallet-middleware-icrc
Version:
Ic middleware wallet ICRC protocol
73 lines (72 loc) • 3.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@ic-wallet-middleware/common");
const mockLogger_1 = require("../../../../__tests_utils/mockLogger");
const addIcrcAllowanceHandler_1 = require("../../../../internalHandlers/icrcCacheDataHandlers/allowances/addIcrcAllowanceHandler/addIcrcAllowanceHandler");
const assetMetaDataCacheHandler_1 = require("../../../../internalHandlers/icrcCacheDataHandlers/assets/assetMetaDataCacheHandler/assetMetaDataCacheHandler");
const repositories_1 = require("../../../../repositories");
const types_1 = require("../../../../types");
const wrappers_1 = require("../../../../wrappers");
describe("Unit AddIcrcAllowanceHandler tests", () => {
const testData = [
{
name: "AddIcrcAllowanceHandler: success",
input: {
ledgerAddress: "ryjl3-tyaaa-aaaaa-aaaba-cai",
subAccountId: types_1.SubAccountId.parseFromString("0x0"),
spenderPrincipal: "xqknu-lpemp-tx4sq-ovbp4-2cf7s-z3was-f374m-l3mui-6zh7u-qdna6-fae",
spenderSubId: types_1.SubAccountId.parseFromString("0x0"),
amount: BigInt(1000000),
expiration: undefined
},
data: {
cacheData: {
ledgerAddress: "ryjl3-tyaaa-aaaaa-aaaba-cai",
subAccountId: "0x0",
spenderPrincipal: "xqknu-lpemp-tx4sq-ovbp4-2cf7s-z3was-f374m-l3mui-6zh7u-qdna6-fae",
spenderSubId: "0x0",
amount: BigInt(1000000),
expiration: undefined,
},
metaData: {
symbol: "ICP",
name: "ICP",
decimals: 8,
logo: "",
fee: 1000n
}
},
result: {
ledgerAddress: "ryjl3-tyaaa-aaaaa-aaaba-cai",
subAccountId: types_1.SubAccountId.parseFromString("0x0"),
spenderPrincipal: "xqknu-lpemp-tx4sq-ovbp4-2cf7s-z3was-f374m-l3mui-6zh7u-qdna6-fae",
spenderSubId: types_1.SubAccountId.parseFromString("0x0"),
decimal: 8,
amount: BigInt(1000000),
expiration: undefined,
}
}
];
for (let test of testData) {
it(test.name, async () => {
const logger = new mockLogger_1.MockLogger();
const assetManagerConfiguration = new types_1.AssetManagerConfiguration();
assetManagerConfiguration.defaultDateTimeFormat = "MM/DD/YYYY HH:mm";
const identifierService = new common_1.IdentifierService();
const assetMetaDataHandler = new assetMetaDataCacheHandler_1.AssetMetaDataCacheHandler();
assetMetaDataHandler.handle = jest.fn().mockReturnValue(Promise.resolve(test.data.metaData));
const cacheStorage = new repositories_1.AllowanceLocalCache();
cacheStorage.addAllowance = jest.fn().mockReturnValue(test.data.cacheData);
const addIcrcAllowanceHandler = new addIcrcAllowanceHandler_1.AddIcrcAllowanceHandler(logger, identifierService, cacheStorage, assetManagerConfiguration, assetMetaDataHandler);
wrappers_1.LedgerWrapper.approveAllowance = jest.fn().mockReturnValue(Promise.resolve(undefined));
const expectedResult = common_1.FormResult.success(test.result);
try {
const result = await addIcrcAllowanceHandler.handle(test.input);
expect(result).toEqual(expectedResult);
}
catch (e) {
expect(e).toEqual(expectedResult);
}
});
}
});