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.
		
		
		
		
		
			
		
			
				
					81 lines
				
				2.6 KiB
			
		
		
			
		
	
	
					81 lines
				
				2.6 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _chai = require("chai");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _removePath = require("./remove-path");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe('removePath', () => {
							 | 
						||
| 
								 | 
							
								  let params;
							 | 
						||
| 
								 | 
							
								  beforeEach(() => {
							 | 
						||
| 
								 | 
							
								    params = {
							 | 
						||
| 
								 | 
							
								      name: 'value',
							 | 
						||
| 
								 | 
							
								      'notPopulated.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'notPopulated.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.2': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.2': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.3.some': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.4.some-other': 'val41',
							 | 
						||
| 
								 | 
							
								      'property.4': 'val4',
							 | 
						||
| 
								 | 
							
								      'property.5.nested.0': 'val5'
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  it('removes regular property', () => {
							 | 
						||
| 
								 | 
							
								    (0, _chai.expect)((0, _removePath.removePath)(params, 'name')).not.to.have.keys('name');
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  it('removes element from the array and updates other indexes', () => {
							 | 
						||
| 
								 | 
							
								    const newParams = (0, _removePath.removePath)(params, 'property.1');
							 | 
						||
| 
								 | 
							
								    (0, _chai.expect)(newParams).to.deep.equal({
							 | 
						||
| 
								 | 
							
								      name: 'value',
							 | 
						||
| 
								 | 
							
								      'notPopulated.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'notPopulated.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.1': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.2.nested.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.2.nested.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.2.nested.2': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.2.nested.3.some': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.2.nested.4.some-other': 'val41',
							 | 
						||
| 
								 | 
							
								      'property.3': 'val4',
							 | 
						||
| 
								 | 
							
								      'property.4.nested.0': 'val5'
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  it('removes parent element from the array and updates other indexes', () => {
							 | 
						||
| 
								 | 
							
								    const newParams = (0, _removePath.removePath)(params, 'property.3.nested.3.some');
							 | 
						||
| 
								 | 
							
								    (0, _chai.expect)(newParams).to.deep.equal({
							 | 
						||
| 
								 | 
							
								      name: 'value',
							 | 
						||
| 
								 | 
							
								      'notPopulated.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'notPopulated.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.2': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.2': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.3.some-other': 'val41',
							 | 
						||
| 
								 | 
							
								      'property.4': 'val4',
							 | 
						||
| 
								 | 
							
								      'property.5.nested.0': 'val5'
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  it('leaves empty array when removing last element', () => {
							 | 
						||
| 
								 | 
							
								    let newParams = (0, _removePath.removePath)(params, 'notPopulated.0');
							 | 
						||
| 
								 | 
							
								    newParams = (0, _removePath.removePath)(newParams, 'notPopulated.0');
							 | 
						||
| 
								 | 
							
								    (0, _chai.expect)(newParams).to.deep.equal({
							 | 
						||
| 
								 | 
							
								      name: 'value',
							 | 
						||
| 
								 | 
							
								      notPopulated: [],
							 | 
						||
| 
								 | 
							
								      'property.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.2': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.0': 'val1',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.1': 'val2',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.2': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.3.some': 'val3',
							 | 
						||
| 
								 | 
							
								      'property.3.nested.4.some-other': 'val41',
							 | 
						||
| 
								 | 
							
								      'property.4': 'val4',
							 | 
						||
| 
								 | 
							
								      'property.5.nested.0': 'val5'
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 |