@@ -15,6 +15,7 @@ To be valid, a password must:
1515You must breakdown this problem in order to solve it. Find one test case first and get that working
1616*/
1717const isValidPassword = require ( "./password-validator" ) ;
18+
1819test ( "password has at least 5 characters" , ( ) => {
1920 // Arrange
2021 const password = "12345" ;
@@ -23,4 +24,57 @@ test("password has at least 5 characters", () => {
2324 // Assert
2425 expect ( result ) . toEqual ( true ) ;
2526}
26- ) ;
27+ ) ;
28+
29+ //
30+ test ( "password has at least one English uppercase letter (A-Z)" , ( ) => {
31+ // Arrange
32+ const password = "A2345" ;
33+ // Act
34+ const result = isValidPassword ( password ) ;
35+ // Assert
36+ expect ( result ) . toEqual ( true ) ;
37+ }
38+ ) ;
39+
40+ //
41+ test ( "password has least one English lowercase letter (a-z)" , ( ) => {
42+ // Arrange
43+ const password = "Da2345" ;
44+ // Act
45+ const result = isValidPassword ( password ) ;
46+ // Assert
47+ expect ( result ) . toEqual ( true ) ;
48+ }
49+ ) ;
50+
51+ //
52+ test ( "password has at least one number 0-9)" , ( ) => {
53+ // Arrange
54+ const password = "Cz!345" ;
55+ // Act
56+ const result = isValidPassword ( password ) ;
57+ // Assert
58+ expect ( result ) . toEqual ( true ) ;
59+ }
60+ ) ;
61+
62+ test ( "password has at least one non-alphanumeric symbols: !, #, $, %, ., *, &)" , ( ) => {
63+ // Arrange
64+ const password = "Cz!345" ;
65+ // Act
66+ const result = isValidPassword ( password ) ;
67+ // Assert
68+ expect ( result ) . toEqual ( true ) ;
69+ }
70+ ) ;
71+
72+ //
73+ test ( "password must not be a previous password" , ( ) => {
74+ const previousPasswords = [ "Mmd1!" , "XyZ2$" , "Test10%" ] ;
75+ const password = "Mmd1" ;
76+ const result = isValidPassword ( password , previousPasswords ) ;
77+ expect ( result ) . toEqual ( false ) ;
78+ } ) ;
79+
80+ // Password-validator implemented and tested.
0 commit comments