adminjs
Version:
Admin panel for apps written in node.js
61 lines • 1.93 kB
JavaScript
import { expect } from 'chai';
import { convertNestedParam } from './convert-nested-param.js';
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 = convertNestedParam(jsonField, property);
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 = convertNestedParam(jsonField, property);
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 = convertNestedParam(jsonField, property);
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 = convertNestedParam(jsonField, property);
expect(convertedJson.nestedList[0].number).to.equal(789);
expect(convertedJson.nestedList[1].number).to.equal(111);
});
});