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.
		
		
		
		
		
			
		
			
				
					40 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					40 lines
				
				1.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								import { createValidationError } from '../../src/utils/create-validation-error'
							 | 
						||
| 
								 | 
							
								import { SAMPLE_VALIDATION_ERROR } from '../fixtures/mongoose-validation-error'
							 | 
						||
| 
								 | 
							
								import { SAMPLE_NESTED_VALIDATION_ERROR } from '../fixtures/mongoose-nested-validation-error'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe('#createValidationError', () => {
							 | 
						||
| 
								 | 
							
								  describe('regular error', () => {
							 | 
						||
| 
								 | 
							
								    it('has errors', () => {
							 | 
						||
| 
								 | 
							
								      const error = createValidationError(SAMPLE_VALIDATION_ERROR)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      expect(Object.keys(error.propertyErrors).length).toEqual(2)
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    it('has error for email', () => {
							 | 
						||
| 
								 | 
							
								      const error = createValidationError(SAMPLE_VALIDATION_ERROR)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      expect(error.propertyErrors.email.type).toEqual('required')
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								  })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  describe('error for nested field', () => {
							 | 
						||
| 
								 | 
							
								    it('2 errors, one for root field and one for an actual nested field', () => {
							 | 
						||
| 
								 | 
							
								      const error = createValidationError(SAMPLE_NESTED_VALIDATION_ERROR)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      expect(Object.keys(error.propertyErrors).length).toEqual(2)
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    it('has error for nested "parent.age" field', () => {
							 | 
						||
| 
								 | 
							
								      const error = createValidationError(SAMPLE_NESTED_VALIDATION_ERROR)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      expect(error.propertyErrors['parent.age'].type).toEqual('Number')
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    it('has error for "parent" field', () => {
							 | 
						||
| 
								 | 
							
								      const error = createValidationError(SAMPLE_NESTED_VALIDATION_ERROR)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      expect(error.propertyErrors.parent.type).toEqual('ValidationError')
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								  })
							 | 
						||
| 
								 | 
							
								})
							 |