@@ -15,12 +15,132 @@ 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*/
1717import { isValidPassword } from "./password-validator.js" ;
18- test ( "password has at least 5 characters" , ( ) => {
19- // Arrange
20- const password = "12345" ;
21- // Act
18+
19+
20+ describe ( "Valid password checks" , ( ) => {
21+ test ( "password has at least 5 characters" , ( ) => {
22+ const password = "Hello!42" ;
2223 const result = isValidPassword ( password ) ;
23- // Assert
24- expect ( result ) . toEqual ( true ) ;
25- }
26- ) ;
24+ expect ( result ) . toEqual ( true )
25+ } ) ;
26+
27+ test ( "password has at least one English uppercase letter (A-Z)" , ( ) => {
28+ const password = "FrankOceanluvr26*" ;
29+ const result = isValidPassword ( password ) ;
30+ expect ( result ) . toEqual ( true ) ;
31+ } ) ;
32+
33+ test ( "password has at least one English lowercase letter (a-z)" , ( ) => {
34+ const password = "jaegerMeister#29" ;
35+ const result = isValidPassword ( password ) ;
36+ expect ( result ) . toEqual ( true ) ;
37+ } ) ;
38+
39+ test ( "password has at least one number (0-9)" , ( ) => {
40+ const password = "1738!Aye" ;
41+ const result = isValidPassword ( password ) ;
42+ expect ( result ) . toEqual ( true ) ;
43+ } ) ;
44+
45+ test ( "password has at least one of the following non-alphanumeric symbols: ('!', '#', '$', '%', '.', '*', '&')" , ( ) => {
46+ const password = "Sleepy&Eepy26" ;
47+ const result = isValidPassword ( password ) ;
48+ expect ( result ) . toEqual ( true ) ;
49+ } ) ;
50+
51+ test ( "password must not be any previous password in the passwords array" , ( ) => {
52+ const password = "One1Two2Three!!!" ;
53+ let result = isValidPassword ( password ) ;
54+ result = isValidPassword ( password ) ;
55+ expect ( result ) . toEqual ( false ) ;
56+ } ) ; //
57+ } ) ;
58+
59+ describe ( "Invalid password: Less than 5 characters" , ( ) => {
60+ test ( "Invalid password: 1234" , ( ) => {
61+ const password = 1234 ;
62+ const result = isValidPassword ( password ) ;
63+ expect ( result ) . toEqual ( false ) ;
64+ } ) ;
65+
66+ test ( "Invalid password: hey" , ( ) => {
67+ const password = "hey" ;
68+ const result = isValidPassword ( password ) ;
69+ expect ( result ) . toEqual ( false ) ;
70+ } ) ;
71+
72+ test ( "Invalid password: !!!" , ( ) => {
73+ const password = "!!!" ;
74+ const result = isValidPassword ( password ) ;
75+ expect ( result ) . toEqual ( false ) ;
76+ } ) ;
77+ } ) ;
78+
79+
80+ describe ( "Invalid password: Does not have an uppercase English letter (A-Z)" , ( ) => {
81+ test ( "Invalid password: aaaaa" , ( ) => {
82+ const password = "aaaaa" ;
83+ const result = isValidPassword ( password ) ;
84+ expect ( result ) . toEqual ( false ) ;
85+ } ) ;
86+ test ( "Invalid password: qwerty" , ( ) => {
87+ const password = "qwerty" ;
88+ const result = isValidPassword ( password ) ;
89+ expect ( result ) . toEqual ( false ) ;
90+ } ) ;
91+
92+ test ( "Invalid password: 12345" , ( ) => {
93+ const password = "12345" ;
94+ const result = isValidPassword ( password ) ;
95+ expect ( result ) . toEqual ( false ) ;
96+ } ) ;
97+ } ) ;
98+
99+
100+ describe ( "Invalid password: Does not have a lowercase English letter (a-z)" , ( ) => {
101+ test ( "Invalid password: AAAAA" , ( ) => {
102+ const password = "AAAAA" ;
103+ const result = isValidPassword ( password ) ;
104+ expect ( result ) . toEqual ( false ) ;
105+ } ) ;
106+
107+ test ( "Invalid password: QWERTY" , ( ) => {
108+ const password = "QWERTY" ;
109+ const result = isValidPassword ( password ) ;
110+ expect ( result ) . toEqual ( false ) ;
111+ } ) ;
112+
113+ test ( "Invalid password: 12345" , ( ) => {
114+ const password = "12345" ;
115+ const result = isValidPassword ( password ) ;
116+ expect ( result ) . toEqual ( false ) ;
117+ } ) ;
118+ } ) ;
119+
120+
121+ describe ( "Invalid password: Does not have a number (0-9" , ( ) => {
122+ test ( "Invalid password: Hello" , ( ) => {
123+ const password = "Hello" ;
124+ const result = isValidPassword ( password ) ;
125+ expect ( result ) . toEqual ( false ) ;
126+ } )
127+ } ) ;
128+
129+
130+ describe ( "Invalid password: Does not have at least one of the following non-alphanumeric symbols: ('!', '#', '$', '%', '.', '*', '&')" , ( ) => {
131+ test ( "Invalid password: Hello1" , ( ) => {
132+ const password = "Hello1" ;
133+ const result = isValidPassword ( password ) ;
134+ expect ( result ) . toEqual ( false ) ;
135+ } ) ;
136+ } ) ;
137+
138+ describe ( "Invalid password: Matches a previous password in the array" , ( ) => {
139+ test ( "Invalid password: Hello1!" , ( ) => {
140+ const password = "Hello1!" ;
141+ let result = isValidPassword ( password ) ;
142+ result = isValidPassword ( password ) ;
143+ expect ( result ) . toEqual ( false ) ;
144+ } ) ;
145+ } ) ;
146+
0 commit comments