@@ -16,11 +16,59 @@ You must breakdown this problem in order to solve it. Find one test case first a
1616*/
1717const isValidPassword = require ( "./password-validator" ) ;
1818test ( "password has at least 5 characters" , ( ) => {
19- // Arrange
20- const password = "12345" ;
21- // Act
22- const result = isValidPassword ( password ) ;
23- // Assert
24- expect ( result ) . toEqual ( true ) ;
25- }
26- ) ;
19+ // Arrange
20+ const password = "12345" ;
21+ // Act
22+ const result = isValidPassword ( password ) ;
23+ // Assert
24+ expect ( result ) . toEqual ( false ) ;
25+ } ) ;
26+
27+ // 2. Password is too short
28+ test ( "password must be at least 5 characters" , ( ) => {
29+ const password = "Ab1!" ;
30+ const result = isValidPassword ( password ) ;
31+ expect ( result ) . toEqual ( false ) ;
32+ } ) ;
33+
34+ // 3. Password must contain at least one uppercase letter
35+ test ( "password must contain at least one uppercase letter" , ( ) => {
36+ const password = "abc!1" ;
37+ const result = isValidPassword ( password ) ;
38+ expect ( result ) . toEqual ( false ) ;
39+ } ) ;
40+
41+ // 4. Password must contain at least one lowercase letter
42+ test ( "password must contain at least one lowercase letter" , ( ) => {
43+ const password = "ABC!1" ;
44+ const result = isValidPassword ( password ) ;
45+ expect ( result ) . toEqual ( false ) ;
46+ } ) ;
47+
48+ // 5. Password must contain at least one number
49+ test ( "password must contain at least one number" , ( ) => {
50+ const password = "Abc!@" ;
51+ const result = isValidPassword ( password ) ;
52+ expect ( result ) . toEqual ( false ) ;
53+ } ) ;
54+
55+ // 6. Password must contain at least one symbol (! # $ % . * &)
56+ test ( "password must contain at least one symbol" , ( ) => {
57+ const password = "Abc12" ;
58+ const result = isValidPassword ( password ) ;
59+ expect ( result ) . toEqual ( false ) ;
60+ } ) ;
61+
62+ // 7. Password must not be a previously used password
63+ test ( "password must not be in the previous passwords array" , ( ) => {
64+ const password = "Abc!1" ; // this is in the passwords array inside the validator
65+ const result = isValidPassword ( password ) ;
66+ expect ( result ) . toEqual ( false ) ;
67+ } ) ;
68+
69+ // 8. Password is valid when all requirements are met
70+ test ( "password is valid when it meets all requirements" , ( ) => {
71+ const password = "Abc!2" ;
72+ const result = isValidPassword ( password ) ;
73+ expect ( result ) . toEqual ( true ) ;
74+ } ) ;
0 commit comments