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