Add acceptance test for form with columns
[MAILPOET-2609]
This commit is contained in:
committed by
Pavel Dohnal
parent
d9d1f05119
commit
564c61a82b
@ -16,7 +16,10 @@ class Text {
|
|||||||
$automationId = ' ';
|
$automationId = ' ';
|
||||||
if ($block['id'] === 'email') {
|
if ($block['id'] === 'email') {
|
||||||
$type = 'email';
|
$type = 'email';
|
||||||
$automationId = 'data-automation-id="form_email" ';
|
}
|
||||||
|
|
||||||
|
if (in_array($block['id'], ['email', 'last_name', 'first_name'], true)) {
|
||||||
|
$automationId = 'data-automation-id="form_' . $block['id'] . '" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
$html = '<div class="mailpoet_paragraph">';
|
$html = '<div class="mailpoet_paragraph">';
|
||||||
|
@ -54,6 +54,14 @@ class Form {
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function withDisplayBelowPosts() {
|
||||||
|
$this->data['settings']['place_form_bellow_all_posts'] = '1';
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/** @return \MailPoet\Models\Form */
|
/** @return \MailPoet\Models\Form */
|
||||||
public function create() {
|
public function create() {
|
||||||
return FormModel::createOrUpdate($this->data);
|
return FormModel::createOrUpdate($this->data);
|
||||||
|
@ -409,4 +409,14 @@ class AcceptanceTester extends \Codeception\Actor {
|
|||||||
public function cliToString(array $userCommand) {
|
public function cliToString(array $userCommand) {
|
||||||
return $this->_cliToString($userCommand);
|
return $this->_cliToString($userCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates post and returns its URL
|
||||||
|
*/
|
||||||
|
public function createPost(string $title, string $body): string {
|
||||||
|
$post = $this->cliToArray(['post', 'create', '--format=json', '--porcelain', '--post_status=publish', '--post_type=post', '--post_title="' . $title . '"', '--post_content="' . $body . '"']);
|
||||||
|
$postData = $this->cliToArray(['post', 'get', $post[0], '--format=json']);
|
||||||
|
$postData = json_decode($postData[0], true);
|
||||||
|
return $postData['guid'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
69
tests/acceptance/FormWithColumnsCest.php
Normal file
69
tests/acceptance/FormWithColumnsCest.php
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace MailPoet\Test\Acceptance;
|
||||||
|
|
||||||
|
use MailPoet\Test\DataFactories\Form;
|
||||||
|
use MailPoet\Test\DataFactories\Segment;
|
||||||
|
|
||||||
|
class FormWithColumnsCest {
|
||||||
|
public function createAndTestFormWithColumns(\AcceptanceTester $i) {
|
||||||
|
$segmentFactory = new Segment();
|
||||||
|
$segmentName = 'Fancy List';
|
||||||
|
$segment = $segmentFactory->withName($segmentName)->create();
|
||||||
|
$formName = 'My fancy form with columns';
|
||||||
|
$form = new Form();
|
||||||
|
$form->withName($formName)
|
||||||
|
->withSegments([$segment])
|
||||||
|
->withDisplayBelowPosts()
|
||||||
|
->create();
|
||||||
|
$i->wantTo('Add columns with firs and last name');
|
||||||
|
$i->login();
|
||||||
|
$i->amOnMailPoetPage('Forms');
|
||||||
|
$i->waitForText($formName);
|
||||||
|
$i->clickItemRowActionByItemName($formName, 'Edit');
|
||||||
|
$i->waitForElement('[data-automation-id="form_title_input"]');
|
||||||
|
|
||||||
|
$i->click('.block-list-appender button');// CLICK the big button that adds new blocks
|
||||||
|
$i->waitForElement('.block-editor-inserter__results .components-panel__body-toggle');
|
||||||
|
$i->click('.block-editor-inserter__results .components-panel__body:nth-child(3) .components-panel__body-toggle'); // toggle layout
|
||||||
|
$i->click('.editor-block-list-item-columns'); // columns block
|
||||||
|
$i->waitForElement('.block-editor-block-variation-picker__variations');
|
||||||
|
$i->click('.block-editor-block-variation-picker__variations li:first-child button');
|
||||||
|
$i->waitForElement('.block-editor-inner-blocks');
|
||||||
|
$i->click('.block-editor-inner-blocks .block-list-appender button'); // CLICK the big button in column that adds new blocks
|
||||||
|
$i->click('.block-editor-inserter__results .components-panel__body:nth-child(2) .components-panel__body-toggle'); // toggle fields
|
||||||
|
$i->click('.editor-block-list-item-mailpoet-form-first-name-input'); // add first name block to the editor
|
||||||
|
$i->click('.block-editor-inner-blocks .block-list-appender button');// CLICK the big button in column that adds new blocks
|
||||||
|
$i->waitForElement('.block-editor-inserter__results .components-panel__body-toggle');
|
||||||
|
$i->click('.block-editor-inserter__results .components-panel__body:nth-child(2) .components-panel__body-toggle'); // toggle fields, get the second field, first one is now "Most Used"
|
||||||
|
$i->click('.editor-block-list-item-mailpoet-form-last-name-input'); // add last name block to the editor
|
||||||
|
$i->seeNoJSErrors();
|
||||||
|
$i->click('[data-automation-id="form_save_button"]');
|
||||||
|
$i->waitForText('Form saved', 10, '.automation-dismissible-notices');
|
||||||
|
// Reload page and check data were saved
|
||||||
|
$i->reloadPage();
|
||||||
|
$i->waitForElement('[data-automation-id="form_title_input"]');
|
||||||
|
$i->seeElement('[data-automation-id="editor_first_name_input"]');
|
||||||
|
$i->seeElement('[data-automation-id="editor_last_name_input"]');
|
||||||
|
|
||||||
|
// Go to post page
|
||||||
|
$postUrl = $i->createPost('Title', 'Content');
|
||||||
|
$i->amOnUrl($postUrl);
|
||||||
|
|
||||||
|
// Subscribe using the form
|
||||||
|
$subscriberEmail = "subscriber_columns@example.com";
|
||||||
|
$subscriberFirstName = "subscriber_columns_first_name";
|
||||||
|
$subscriberLastName = "subscriber_columns_last_name";
|
||||||
|
$i->fillField('[data-automation-id="form_email"]', $subscriberEmail);
|
||||||
|
$i->fillField('[data-automation-id="form_first_name"]', $subscriberFirstName);
|
||||||
|
$i->fillField('[data-automation-id="form_last_name"]', $subscriberLastName);
|
||||||
|
$i->click('[data-automation-id="subscribe-submit-button"]');
|
||||||
|
$i->waitForText('Check your inbox or spam folder to confirm your subscription');
|
||||||
|
|
||||||
|
// Check subscriber data were saved
|
||||||
|
$i->amOnMailpoetPage('Subscribers');
|
||||||
|
$i->waitForText($subscriberEmail);
|
||||||
|
$i->waitForText($subscriberFirstName);
|
||||||
|
$i->waitForText($subscriberLastName);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user