1+ import values from 'lodash/values'
2+ import every from 'lodash/every'
13import { validate } from '../src/index'
24
35const elevenSeconds = 11 * 1000
@@ -6,6 +8,8 @@ describe('validation tests', () => {
68 it ( 'fails with bad regex' , async ( ) => {
79 const res = await validate ( 'dav id@gmail.com' )
810 expect ( res . valid ) . toBe ( false )
11+ expect ( res . reason ) . toBe ( 'regex' )
12+ expect ( res . validators . regex ?. valid ) . toBe ( false )
913 expect ( res ) . toMatchSnapshot ( )
1014 } )
1115
@@ -15,18 +19,25 @@ describe('validation tests', () => {
1519 validateRegex : false ,
1620 } )
1721 expect ( res . valid ) . toBe ( false )
22+ expect ( res . reason ) . toBe ( 'smtp' )
23+ expect ( res . validators . regex ?. valid ) . toBe ( true )
24+ expect ( res . validators . smtp ?. valid ) . toBe ( false )
1825 expect ( res ) . toMatchSnapshot ( )
1926 } )
2027
2128 it ( 'fails with common typo' , async ( ) => {
2229 const res = await validate ( 'david@gmaill.com' )
2330 expect ( res . valid ) . toBe ( false )
31+ expect ( res . reason ) . toBe ( 'typo' )
32+ expect ( res . validators . typo ?. valid ) . toBe ( false )
2433 expect ( res ) . toMatchSnapshot ( )
2534 } )
2635
2736 it ( 'fails with disposable email' , async ( ) => {
2837 const res = await validate ( 'david@temp-mail.org' )
2938 expect ( res . valid ) . toBe ( false )
39+ expect ( res . reason ) . toBe ( 'disposable' )
40+ expect ( res . validators . disposable ?. valid ) . toBe ( false )
3041 expect ( res ) . toMatchSnapshot ( )
3142 } )
3243
@@ -35,6 +46,8 @@ describe('validation tests', () => {
3546 async ( ) => {
3647 const res = await validate ( 'xxx@yyy.zzz' )
3748 expect ( res . valid ) . toBe ( false )
49+ expect ( res . reason ) . toBe ( 'mx' )
50+ expect ( res . validators . mx ?. valid ) . toBe ( false )
3851 expect ( res ) . toMatchSnapshot ( )
3952 } ,
4053 elevenSeconds
@@ -43,6 +56,8 @@ describe('validation tests', () => {
4356 it ( 'fails with bad mailbox' , async ( ) => {
4457 const res = await validate ( 'david@andco.life' )
4558 expect ( res . valid ) . toBe ( false )
59+ expect ( res . reason ) . toBe ( 'smtp' )
60+ expect ( res . validators . smtp ?. valid ) . toBe ( false )
4661 expect ( res ) . toMatchSnapshot ( )
4762 } )
4863
@@ -51,6 +66,8 @@ describe('validation tests', () => {
5166 async ( ) => {
5267 const res = await validate ( 'admin@github.com' )
5368 expect ( res . valid ) . toBe ( false )
69+ expect ( res . reason ) . toBe ( 'smtp' )
70+ expect ( res . validators . smtp ?. valid ) . toBe ( false )
5471 expect ( res ) . toMatchSnapshot ( )
5572 } ,
5673 elevenSeconds
@@ -63,7 +80,8 @@ describe('validation tests', () => {
6380 email : 'admin@github.com' ,
6481 validateSMTP : false ,
6582 } )
66-
83+ expect ( res . valid ) . toBe ( true )
84+ expect ( every ( values ( res . validators ) , x => x && x . valid ) ) . toBe ( true )
6785 expect ( res ) . toMatchSnapshot ( )
6886 } ,
6987 elevenSeconds
@@ -74,6 +92,7 @@ describe('validation tests', () => {
7492 async ( ) => {
7593 const res = await validate ( '~@oftn.org' )
7694 expect ( res . valid ) . toBe ( true )
95+ expect ( every ( values ( res . validators ) , x => x && x . valid ) ) . toBe ( true )
7796 expect ( res ) . toMatchSnapshot ( )
7897 } ,
7998 elevenSeconds
@@ -84,6 +103,7 @@ describe('validation tests', () => {
84103 async ( ) => {
85104 const res = await validate ( 'info@davidalbertoadler.com' )
86105 expect ( res . valid ) . toBe ( true )
106+ expect ( every ( values ( res . validators ) , x => x && x . valid ) ) . toBe ( true )
87107 expect ( res ) . toMatchSnapshot ( )
88108 } ,
89109 elevenSeconds
0 commit comments