@@ -24,6 +24,15 @@ test("password has at least 5 characters", () => {
2424 expect ( result ) . toEqual ( true ) ;
2525} ) ;
2626
27+ test ( "password with less than 5 characters is invalid" , ( ) => {
28+ // Arrange
29+ const password = "1Aa%" ;
30+ // Act
31+ const result = isValidPassword ( password ) ;
32+ // Assert
33+ expect ( result ) . toEqual ( false ) ;
34+ } ) ;
35+
2736test ( "password has at least one English uppercase letter (A-Z)" , ( ) => {
2837 // Arrange
2938 const password = "1234bA$" ;
@@ -33,6 +42,15 @@ test("password has at least one English uppercase letter (A-Z)", () => {
3342 expect ( result ) . toEqual ( true ) ;
3443} ) ;
3544
45+ test ( "password with no uppercase letters is invalid" , ( ) => {
46+ // Arrange
47+ const password = "1234ab$" ;
48+ // Act
49+ const result = isValidPassword ( password ) ;
50+ // Assert
51+ expect ( result ) . toEqual ( false ) ;
52+ } ) ;
53+
3654test ( "password has at least one English lowercase letter (a-z)" , ( ) => {
3755 // Arrange
3856 const password = "1234Aa%" ;
@@ -42,6 +60,15 @@ test("password has at least one English lowercase letter (a-z)", () => {
4260 expect ( result ) . toEqual ( true ) ;
4361} ) ;
4462
63+ test ( "password with no lowercase letters is invalid" , ( ) => {
64+ // Arrange
65+ const password = "1234AB$" ;
66+ // Act
67+ const result = isValidPassword ( password ) ;
68+ // Assert
69+ expect ( result ) . toEqual ( false ) ;
70+ } ) ;
71+
4572test ( "password has at least one number (0-9)" , ( ) => {
4673 // Arrange
4774 const password = "1234Aa&" ;
@@ -51,6 +78,15 @@ test("password has at least one number (0-9)", () => {
5178 expect ( result ) . toEqual ( true ) ;
5279} ) ;
5380
81+ test ( "password with no numbers is invalid" , ( ) => {
82+ // Arrange
83+ const password = "passWord!" ;
84+ // Act
85+ const result = isValidPassword ( password ) ;
86+ // Assert
87+ expect ( result ) . toEqual ( false ) ;
88+ } ) ;
89+
5490test ( "password has at least one non-alphanumeric symbol: (!, #, $, %, ., *, &)" , ( ) => {
5591 // Arrange
5692 const password = "1234aA#" ;
@@ -59,3 +95,21 @@ test("password has at least one non-alphanumeric symbol: (!, #, $, %, ., *, &)",
5995 // Assert
6096 expect ( result ) . toEqual ( true ) ;
6197} ) ;
98+
99+ test ( "must not be any previous password in the passwords array." , ( ) => {
100+ // Arrange
101+ const password = "pas$W0rd" ;
102+ // Act
103+ const result = isValidPassword ( password ) ;
104+ // Assert
105+ expect ( result ) . toEqual ( true ) ;
106+ } ) ;
107+
108+ test ( "previous passwords in the passwords array are invalid" , ( ) => {
109+ // Arrange
110+ const password = "Qwerty1#" ;
111+ // Act
112+ const result = isValidPassword ( password ) ;
113+ // Assert
114+ expect ( result ) . toEqual ( false ) ;
115+ } ) ;
0 commit comments