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.
		
		
		
		
		
			
		
			
				
					52 lines
				
				1.7 KiB
			
		
		
			
		
	
	
					52 lines
				
				1.7 KiB
			| 
											3 years ago
										 | "use strict"; | ||
|  | 
 | ||
|  | var _chai = require("chai"); | ||
|  | 
 | ||
|  | var _selectParams = require("./select-params"); | ||
|  | 
 | ||
|  | describe('selectParams', () => { | ||
|  |   const params = { | ||
|  |     name: 'John', | ||
|  |     surname: 'Doe', | ||
|  |     age: 31, | ||
|  |     'meta.description': 'very ugly', | ||
|  |     'meta.title': 'cto', | ||
|  |     'meta.otherInfo': 'he stinks', | ||
|  |     metadetaksamosone: 'this is a steroid' | ||
|  |   }; | ||
|  |   it('selects params for given property', () => { | ||
|  |     (0, _chai.expect)((0, _selectParams.selectParams)(params, 'age')).to.deep.equal({ | ||
|  |       age: 31 | ||
|  |     }); | ||
|  |   }); | ||
|  |   it('select params for nested property', () => { | ||
|  |     (0, _chai.expect)((0, _selectParams.selectParams)(params, 'meta')).to.deep.equal({ | ||
|  |       'meta.description': 'very ugly', | ||
|  |       'meta.title': 'cto', | ||
|  |       'meta.otherInfo': 'he stinks' | ||
|  |     }); | ||
|  |   }); | ||
|  |   it('returns empty object when there is no match', () => { | ||
|  |     (0, _chai.expect)((0, _selectParams.selectParams)(params, 'nothingIsThere')).to.deep.eq({}); | ||
|  |   }); | ||
|  |   it('returns multiple properties when they are given', () => { | ||
|  |     (0, _chai.expect)((0, _selectParams.selectParams)(params, ['name', 'surname'])).to.deep.equal({ | ||
|  |       name: 'John', | ||
|  |       surname: 'Doe' | ||
|  |     }); | ||
|  |   }); | ||
|  |   it('does not one property when is empty for multi-properties', () => { | ||
|  |     (0, _chai.expect)((0, _selectParams.selectParams)(params, ['name', 'surname', 'meta', 'empty'])).to.deep.equal({ | ||
|  |       name: 'John', | ||
|  |       surname: 'Doe', | ||
|  |       'meta.description': 'very ugly', | ||
|  |       'meta.title': 'cto', | ||
|  |       'meta.otherInfo': 'he stinks' | ||
|  |     }); | ||
|  |   }); | ||
|  |   it('does not throw an error when user passes undefined as a propertyPath', () => { | ||
|  |     (0, _chai.expect)(() => { | ||
|  |       (0, _selectParams.selectParams)(params, ['name', undefined]); | ||
|  |     }).not.to.throw(); | ||
|  |   }); | ||
|  | }); |