@yoroi/common
Version:
The Common package of Yoroi SDK
59 lines (58 loc) • 1.91 kB
JavaScript
"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