UNPKG

@yoroi/common

Version:

The Common package of Yoroi SDK

59 lines (58 loc) 1.91 kB
"use strict"; var _bignumber = _interopRequireDefault(require("bignumber.js")); var _storageDeserializerMaker = require("./storage-deserializer-maker"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('storageDeserializerMaker', () => { const mapping = { age: _storageDeserializerMaker.StorageReviverType.AsBigInt, balance: _storageDeserializerMaker.StorageReviverType.AsBigNumber }; const deserializer = (0, _storageDeserializerMaker.storageDeserializerMaker)(mapping); it('should parse JSON string and convert properties', () => { const whatever = JSON.stringify({ name: 'John', age: '25', balance: '100', nested: { balance: '111', age: '10', data: [{ age: '1' }], nullable: { balance: null, age: null } } }); const result = deserializer(whatever); expect(result).toEqual({ name: 'John', age: 25n, balance: new _bignumber.default('100'), nested: { balance: new _bignumber.default('111'), age: 10n, data: [{ age: 1n }], nullable: { balance: null, age: null } } }); }); it('should return null if jsonString is null', () => { const nullable = JSON.stringify(null); const empty = undefined; const invalid = '{x:'; const nullResult = (0, _storageDeserializerMaker.storageDeserializerMaker)(mapping)(nullable); const emptyResult = (0, _storageDeserializerMaker.storageDeserializerMaker)(mapping)(empty); const invalidResult = (0, _storageDeserializerMaker.storageDeserializerMaker)(mapping)(invalid); expect(nullResult).toBeNull(); expect(emptyResult).toBeNull(); expect(invalidResult).toBeNull(); }); }); //# sourceMappingURL=storage-deserializer-maker.test.js.map