@@ -46,15 +46,41 @@ describe('Validate required fields', () => {
46
46
cy . mailchimpLoginIfNotAlreadyLoggedIn ( ) ;
47
47
48
48
// Set all merge fields to required in the Mailchimp test user account
49
- cy . setMergeFieldsRequired ( true ) ;
49
+ cy . setMergeFieldsRequired ( true , '10up' , [
50
+ 'FNAME' ,
51
+ 'LNAME' ,
52
+ 'ADDRESS' ,
53
+ 'BIRTHDAY' ,
54
+ 'COMPANY' ,
55
+ 'MMERGE8' ,
56
+ 'MMERGE9' ,
57
+ 'MMERGE10' ,
58
+ 'MMERGE11' ,
59
+ 'MMERGE7' ,
60
+ 'MMERGE6' ,
61
+ 'PHONE' ,
62
+ ] ) ;
50
63
} ) ;
51
64
52
65
after ( ( ) => {
53
66
// I don't know why we need to login again, but we do
54
67
cy . login ( ) ; // WordPress login
55
68
56
69
// Cleanup: Set all merge fields to not required in the Mailchimp test user account
57
- cy . setMergeFieldsRequired ( false ) ;
70
+ cy . setMergeFieldsRequired ( false , '10up' , [
71
+ 'FNAME' ,
72
+ 'LNAME' ,
73
+ 'ADDRESS' ,
74
+ 'BIRTHDAY' ,
75
+ 'COMPANY' ,
76
+ 'MMERGE8' ,
77
+ 'MMERGE9' ,
78
+ 'MMERGE10' ,
79
+ 'MMERGE11' ,
80
+ 'MMERGE7' ,
81
+ 'MMERGE6' ,
82
+ 'PHONE' ,
83
+ ] ) ;
58
84
59
85
// Cleanup: Uncheck all optional merge fields
60
86
cy . toggleMergeFields ( 'uncheck' ) ;
@@ -66,7 +92,14 @@ describe('Validate required fields', () => {
66
92
cy . get ( '#mc_mv_EMAIL' ) . clear ( ) . type ( email ) ; // Email is always required
67
93
68
94
requiredFields . forEach ( ( field ) => {
69
- cy . get ( field . selector ) . clear ( ) . type ( field . input ) ;
95
+ if ( field . selector === '#mc_mv_PHONE' ) {
96
+ const phone = field . input . split ( '-' ) ;
97
+ cy . get ( '#mc_mv_PHONE-area' ) . clear ( ) . type ( phone [ 0 ] ) ;
98
+ cy . get ( '#mc_mv_PHONE-detail1' ) . clear ( ) . type ( phone [ 1 ] ) ;
99
+ cy . get ( '#mc_mv_PHONE-detail2' ) . clear ( ) . type ( phone [ 2 ] ) ;
100
+ } else {
101
+ cy . get ( field . selector ) . clear ( ) . type ( field . input ) ;
102
+ }
70
103
cy . get ( 'body' ) . click ( 0 , 0 ) ; // Click outside the field to clear the datepicker modal
71
104
} ) ;
72
105
@@ -88,13 +121,19 @@ describe('Validate required fields', () => {
88
121
// Ensure the form exists
89
122
cy . get ( '#mc_signup' ) . should ( 'exist' ) ;
90
123
124
+ // Fill out entire form everytime so we can narrow tests to one input at a time
125
+ fillOutAllFields ( ) ;
126
+
91
127
// Test validation for each required field
92
128
requiredFields . forEach ( ( field ) => {
93
- // Fill out entire form everytime so we can narrow tests to one input at a time
94
- fillOutAllFields ( ) ;
95
-
96
129
// Submit the form without input to trigger validation
97
- cy . get ( field . selector ) . clear ( ) ; // Ensure field is empty
130
+ if ( field . selector === '#mc_mv_PHONE' ) {
131
+ cy . get ( '#mc_mv_PHONE-area' ) . clear ( ) ;
132
+ cy . get ( '#mc_mv_PHONE-detail1' ) . clear ( ) ;
133
+ cy . get ( '#mc_mv_PHONE-detail2' ) . clear ( ) ;
134
+ } else {
135
+ cy . get ( field . selector ) . clear ( ) ; // Ensure field is empty
136
+ }
98
137
cy . get ( 'body' ) . click ( 0 , 0 ) ; // Click outside the field to clear the datepicker modal
99
138
cy . get ( '#mc_signup_submit' ) . click ( ) ;
100
139
@@ -103,7 +142,15 @@ describe('Validate required fields', () => {
103
142
cy . get ( '.mc_error_msg' ) . should ( 'include.text' , field . errorMessage ) ;
104
143
105
144
// Fill in the field
106
- cy . get ( field . selector ) . type ( field . input ) ;
145
+ if ( field . selector === '#mc_mv_PHONE' ) {
146
+ const phone = field . input . split ( '-' ) ;
147
+ cy . get ( '#mc_mv_PHONE-area' ) . clear ( ) . type ( phone [ 0 ] ) ;
148
+ cy . get ( '#mc_mv_PHONE-detail1' ) . clear ( ) . type ( phone [ 1 ] ) ;
149
+ cy . get ( '#mc_mv_PHONE-detail2' ) . clear ( ) . type ( phone [ 2 ] ) ;
150
+ } else {
151
+ cy . get ( field . selector ) . type ( field . input ) ;
152
+ }
153
+ cy . get ( 'body' ) . click ( 0 , 0 ) ; // Click outside the field to clear the datepicker modal
107
154
} ) ;
108
155
} ) ;
109
156
} ) ;
0 commit comments