@yoroi/portfolio
Version:
The Portfolio package of Yoroi SDK
39 lines (38 loc) • 1.83 kB
JavaScript
;
var _tokenBalance = require("../adapters/token-balance.mocks");
var _amountsCalculator = require("./amounts-calculator");
describe('AmountsCalculator', () => {
const records = Object.fromEntries(_tokenBalance.tokenBalanceMocks.storage.entries1);
it('should negate the amounts', () => {
const amounts = (0, _amountsCalculator.AmountsCalcultor)(records).negate().build();
Object.entries(amounts).forEach(_ref => {
let [_, amount] = _ref;
expect(amount.quantity).toBeLessThanOrEqual(0n);
});
});
it('should drop specified tokens', () => {
const amounts = (0, _amountsCalculator.AmountsCalcultor)().plus(records).build();
expect(Object.keys(amounts)).toHaveLength(4);
const newAmounts = (0, _amountsCalculator.AmountsCalcultor)(amounts).drop([
// primary does not exist in the storage
_tokenBalance.tokenBalanceMocks.primaryETH.info.id, _tokenBalance.tokenBalanceMocks.nftCryptoKitty.info.id]).build();
expect(Object.keys(newAmounts)).toHaveLength(3);
});
it('should add new amounts', () => {
const amounts = (0, _amountsCalculator.AmountsCalcultor)(records).plus(records).build();
expect(Object.keys(amounts)).toHaveLength(4);
Object.entries(amounts).forEach(_ref2 => {
let [_, amount] = _ref2;
expect(amount.quantity).toBe((records[amount.info.id]?.quantity ?? 0n) * 2n);
});
});
it('should calculate the difference between two amounts', () => {
const amounts = (0, _amountsCalculator.AmountsCalcultor)(records).minus(records).build();
expect(Object.keys(amounts)).toHaveLength(4);
Object.entries(amounts).forEach(_ref3 => {
let [_, amount] = _ref3;
expect(amount.quantity).toBe((records[amount.info.id]?.quantity ?? 0n) * 0n);
});
});
});
//# sourceMappingURL=amounts-calculator.test.js.map