From fc67c57c4a94ff3c6e26c3baf2716b0cec47919e Mon Sep 17 00:00:00 2001 From: Veljko Date: Wed, 21 Jun 2023 15:43:05 +0200 Subject: [PATCH] Improve the subscription page test [MAILPOET-5326] --- .../Settings/SubscriptionPageCest.php | 48 ++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/mailpoet/tests/acceptance/Settings/SubscriptionPageCest.php b/mailpoet/tests/acceptance/Settings/SubscriptionPageCest.php index 5c1c4371c6..9f2aaa9a9a 100644 --- a/mailpoet/tests/acceptance/Settings/SubscriptionPageCest.php +++ b/mailpoet/tests/acceptance/Settings/SubscriptionPageCest.php @@ -2,9 +2,13 @@ namespace MailPoet\Test\Acceptance; +use Codeception\Util\Locator; +use MailPoet\Test\DataFactories\Subscriber; + class SubscriptionPageCest { public function previewDefaultSubscriptionPage(\AcceptanceTester $i) { $i->wantTo('Preview default MailPoet page from MP Settings page'); + $i->login(); $i->amOnMailPoetPage('Settings'); $i->click('[data-automation-id="preview_manage_subscription_page_link"]'); @@ -13,19 +17,51 @@ class SubscriptionPageCest { } public function createNewSubscriptionPage(\AcceptanceTester $i) { - $i->wantTo('Make a custom subscription page'); + $i->wantTo('Make and set a custom manage subscription page'); + $pageTitle = 'CustomSubscriptionPage'; - $pageContent = 'This is custom manage subscription page [mailpoet_manage_subscription]'; - $i->cli(['post', 'create', '--post_status=publish', '--post_type=page', "--post_title='$pageTitle'", "--post_content='$pageContent'"]); + $pageContent = 'This is custom manage subscription page'; + $emailContent = 'Click Manage Subscription to see the subscription page.'; + $emailAddress = 'subscriber@example.com'; + $confirmationEmailName = 'Confirm your subscription'; + $subscriberFactory = new Subscriber(); + $subscriberFactory->withEmail($emailAddress) + ->withStatus('unconfirmed') + ->withCountConfirmations(0) + ->create(); + + $i->cli(['post', 'create', '--post_status=publish', '--post_type=page', "--post_title='$pageTitle'", "--post_content='$pageContent [mailpoet_manage_subscription]'"]); + $i->login(); + $i->amOnMailPoetPage('Settings'); $i->click(['css' => '[data-automation-id="subscription-manage-page-selection"]']); $i->selectOption('[data-automation-id="subscription-manage-page-selection"]', $pageTitle); - //save settings and then verify the page $i->click('[data-automation-id="settings-submit-button"]'); + $i->waitForNoticeAndClose('Settings saved'); + + $i->wantTo('Click the manage subscription link and verify it'); + + // Making a shortcut in this scenario by providing required url in the conf email + $i->click('[data-automation-id="signup_settings_tab"]'); + $i->checkOption('[data-automation-id="mailpoet_confirmation_email_customizer"]'); + $i->clearField('[data-automation-id="signup_confirmation_email_body"]'); + $i->fillField('[data-automation-id="signup_confirmation_email_body"]', $emailContent); + $i->click('Save settings'); $i->waitForText('Settings saved'); - $i->click('[data-automation-id="preview_manage_subscription_page_link"]'); + + $i->amOnMailpoetPage('Subscribers'); + $i->waitForText($emailAddress); + $i->clickItemRowActionByItemName($emailAddress, 'Resend confirmation email'); + $i->waitForText('1 confirmation email has been sent.'); + + $i->amOnMailboxAppPage(); + $i->checkEmailWasReceived($confirmationEmailName); + $i->click(Locator::contains('span.subject', $confirmationEmailName)); + $i->switchToIframe('#preview-html'); + $i->click('Manage Subscription'); $i->switchToNextTab(); - $i->waitForText('This is custom manage subscription page'); + $i->waitForText($pageTitle); + $i->waitForText($pageContent); } }