36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | const { padWithLeadingZeros } = require('./pad-with-leading-zeros'); | ||
|  | 
 | ||
|  | describe('padWithLeadingZeros helper', () => { | ||
|  |   it('should return a string of 3 digits for valid values', () => { | ||
|  |     const items = ['1', '11', '111']; | ||
|  | 
 | ||
|  |     items.forEach(item => expect(padWithLeadingZeros(item).length).toEqual(3)); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should prepend 0s on valid values while length is less than 3', () => { | ||
|  |     expect(padWithLeadingZeros('1')).toEqual('001'); | ||
|  |     expect(padWithLeadingZeros('11')).toEqual('011'); | ||
|  |     expect(padWithLeadingZeros('111')).toEqual('111'); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should throw on invalid values', () => { | ||
|  |     const items = ['undefined', null, []]; | ||
|  | 
 | ||
|  |     items.forEach(item => | ||
|  |       expect(() => { | ||
|  |         if (item !== 'undefined') { | ||
|  |           padWithLeadingZeros(item); | ||
|  |         } else { | ||
|  |           padWithLeadingZeros(); | ||
|  |         } | ||
|  |       }).toThrow() | ||
|  |     ); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should throw on valid values that are longer that 3 characters', () => { | ||
|  |     expect(() => { | ||
|  |       padWithLeadingZeros('19850809'); | ||
|  |     }).toThrow(); | ||
|  |   }); | ||
|  | }); |