You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.0 KiB

"use strict";
var _chai = require("chai");
var _convertNestedParam = require("./convert-nested-param");
const jsonField = {
number: '123',
date: '2020-11-08',
nested: {
number: '456'
},
nestedList: [{
number: '789'
}, {
number: '111'
}]
};
describe('module:paramConverter.convertNestedParam', () => {
it('should convert number property of a JSON to actual number', () => {
const property = {
type: 'number',
propertyPath: 'jsonField.number',
subProperties: []
};
const convertedJson = (0, _convertNestedParam.convertNestedParam)(jsonField, property);
(0, _chai.expect)(convertedJson.number).to.equal(123);
});
it('should convert date property of a JSON to actual number', () => {
const property = {
type: 'datetime',
propertyPath: 'jsonField.date',
subProperties: []
};
const convertedJson = (0, _convertNestedParam.convertNestedParam)(jsonField, property);
(0, _chai.expect)(convertedJson.date.getTime()).to.equal(new Date('2020-11-08').getTime());
});
it('should convert a nested json property\'s number string to actual number', () => {
const property = {
type: 'mixed',
propertyPath: 'jsonField.nested',
isArray: false,
subProperties: [{
propertyPath: 'jsonField.nested.number',
type: 'number'
}]
};
const convertedJson = (0, _convertNestedParam.convertNestedParam)(jsonField, property);
(0, _chai.expect)(convertedJson.nested.number).to.equal(456);
});
it('should convert a nested json array property\'s number string to actual number', () => {
const property = {
type: 'mixed',
propertyPath: 'jsonField.nestedList',
isArray: true,
subProperties: [{
propertyPath: 'jsonField.nestedList.number',
type: 'number'
}]
};
const convertedJson = (0, _convertNestedParam.convertNestedParam)(jsonField, property);
(0, _chai.expect)(convertedJson.nestedList[0].number).to.equal(789);
(0, _chai.expect)(convertedJson.nestedList[1].number).to.equal(111);
});
});