Skip to content

Commit 4e11798

Browse files
committed
E2E: Added tests for the form previewer.
1 parent 2711f25 commit 4e11798

File tree

6 files changed

+72
-7
lines changed

6 files changed

+72
-7
lines changed

assets/css/admin.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,10 @@ a.mailchimp-sf-button.mailchimp-cancel-user-sync-button:hover {
887887
margin-left: auto;
888888
}
889889

890+
#mailchimp-sf-settings-page .user-profile-wrapper form {
891+
margin: 0px;
892+
}
893+
890894
#mailchimp-sf-settings-page .user-profile {
891895
display: flex;
892896
flex-direction: row;

includes/admin/templates/header.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
if ( ! empty( $user['avatar_url'] ) ) {
2424
?>
2525
<div class="user-profile-avatar">
26-
<img src="<?php echo esc_url( $user['avatar_url'] ); ?>" alt="">
26+
<img src="<?php echo esc_url( $user['avatar_url'] ); ?>" alt="<?php echo esc_attr( $user['first_name'] ); ?>">
2727
</div>
2828
<?php
2929
}

tests/cypress/e2e/settings/list.test.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ describe('Mailchimp lists ', () => {
3838

3939
// Verify that list can be saved
4040
cy.selectList('10up');
41-
cy.get('.notice.notice-success.is-dismissible').first().contains('Success!');
4241

4342
// Verify that the settings are visible if a list is saved
4443
cy.get('h2.mailchimp-sf-settings-table-title')

tests/cypress/e2e/settings/settings.test.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,4 +293,66 @@ describe('Admin can update plugin settings', () => {
293293
});
294294
});
295295
});
296+
297+
it('Admin can view form preview on the settings page', () => {
298+
cy.visit('/wp-admin/admin.php?page=mailchimp_sf_options');
299+
cy.get('h2.mailchimp-sf-settings-table-title')
300+
.contains('Form preview')
301+
.should('be.visible');
302+
});
303+
304+
it('Form preview should reflect changes made on the settings page', () => {
305+
cy.visit('/wp-admin/admin.php?page=mailchimp_sf_options');
306+
cy.get('#mc_header_content').clear().type('My Custom Header');
307+
cy.wait(1000);
308+
cy.get('.mailchimp-sf-form-preview .mc_custom_border_hdr').should(
309+
'have.text',
310+
'My Custom Header',
311+
);
312+
313+
cy.get('#mc_subheader_content').clear().type('My Custom Subheader');
314+
cy.wait(1000);
315+
cy.get('.mailchimp-sf-form-preview #mc_subheader').contains('My Custom Subheader');
316+
317+
cy.get('#mc_submit_text').clear().type('My Custom Button');
318+
cy.wait(1000);
319+
cy.get('.mailchimp-sf-form-preview #mc_signup_submit').contains('My Custom Button');
320+
321+
// Field options
322+
cy.get('#mc_mv_FNAME').uncheck();
323+
cy.wait(1000);
324+
cy.get('.mailchimp-sf-form-preview input#mc_mv_FNAME').should('not.exist');
325+
326+
cy.get('#mc_mv_LNAME').uncheck();
327+
cy.wait(1000);
328+
cy.get('.mailchimp-sf-form-preview input#mc_mv_LNAME').should('not.exist');
329+
330+
cy.get('#mc_mv_FNAME').check();
331+
cy.wait(1000);
332+
cy.get('.mailchimp-sf-form-preview input#mc_mv_FNAME').should('exist');
333+
334+
cy.get('#mc_mv_LNAME').check();
335+
cy.wait(1000);
336+
cy.get('.mailchimp-sf-form-preview input#mc_mv_LNAME').should('exist');
337+
338+
// Unsubscribe link
339+
cy.get('#mc_use_unsub_link').check();
340+
cy.wait(1000);
341+
cy.get('.mailchimp-sf-form-preview #mc_unsub_link').should('exist');
342+
343+
cy.get('#mc_use_unsub_link').uncheck();
344+
cy.wait(1000);
345+
cy.get('.mailchimp-sf-form-preview #mc_unsub_link').should('not.exist');
346+
347+
// Groups
348+
cy.get('input[id^="mc_show_interest_groups_"]').check();
349+
cy.wait(1000);
350+
cy.get('.mailchimp-sf-form-preview .mc_interests_header').should('exist');
351+
cy.get('.mailchimp-sf-form-preview .mc_interest').should('exist');
352+
353+
cy.get('input[id^="mc_show_interest_groups_"]').uncheck();
354+
cy.wait(1000);
355+
cy.get('.mailchimp-sf-form-preview .mc_interests_header').should('not.exist');
356+
cy.get('.mailchimp-sf-form-preview .mc_interest').should('not.exist');
357+
});
296358
});

tests/cypress/e2e/validation/address.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ describe('Address Field Validation', () => {
3131
// Set address fields (Addr 1 and City) as required
3232
cy.getListId('10up').then((listId) => {
3333
cy.updateMergeFieldByTag(listId, 'ADDRESS', { required: true }).then(() => {
34-
cy.selectList('10up'); // Refresh list in WordPress
34+
cy.selectList('10up', true); // Refresh list in WordPress
3535
});
3636
});
3737
});
@@ -40,7 +40,7 @@ describe('Address Field Validation', () => {
4040
// Cleanup: Reset address fields to optional
4141
cy.getListId('10up').then((listId) => {
4242
cy.updateMergeFieldByTag(listId, 'ADDRESS', { required: false }).then(() => {
43-
cy.selectList('10up'); // Refresh list in WordPress
43+
cy.selectList('10up', true); // Refresh list in WordPress
4444
});
4545
});
4646
});

tests/cypress/support/commands/settings.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
* // Select a Mailchimp list named "10up List"
1212
* cy.selectList('10up List');
1313
*/
14-
Cypress.Commands.add('selectList', (listName) => {
14+
Cypress.Commands.add('selectList', (listName, force = false) => {
1515
cy.visit('/wp-admin/admin.php?page=mailchimp_sf_options');
1616
cy.get('#mc_list_id option:selected')
1717
.invoke('text')
1818
.then((value) => {
19-
if (value === listName) {
19+
if (value === listName && !force) {
2020
// Value matches, you can log or perform actions
2121
cy.log('Select has the expected value');
2222
} else {
@@ -130,7 +130,7 @@ Cypress.Commands.add('setMergeFieldsRequired', (required, listName = '10up', fie
130130
// Set all merge fields to required in the Mailchimp test user account
131131
cy.getListId(listName).then((listId) => {
132132
cy.updateMergeFieldsByList(listId, { required }, fields).then(() => {
133-
cy.selectList(listName); // Ensure list is selected, refreshes Mailchimp data with WP
133+
cy.selectList(listName, true); // Ensure list is selected, refreshes Mailchimp data with WP
134134
});
135135
});
136136
});

0 commit comments

Comments
 (0)