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
						
					
					
				
			
		
		
	
	
							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);
 | 
						|
  });
 | 
						|
}); |