Files
piratepoet/tests/acceptance/Segments/MailPoetCustomFieldSegmentCest.php
2021-06-14 11:28:18 +02:00

67 lines
2.8 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Test\Acceptance;
use MailPoet\Test\DataFactories\CustomField;
use MailPoet\Test\DataFactories\Subscriber;
class MailPoetCustomFieldSegmentCest {
public function _before() {
$customField = (new CustomField())
->withName('Text custom field');
(new Subscriber())
->withEmail('test1@example.com')
->create();
$subscriber2 = (new Subscriber())
->withEmail('test2@example.com')
->create();
$subscriber3 = (new Subscriber())
->withEmail('test3@example.com')
->create();
$customField->withSubscriber($subscriber2->getId(), 'some value1 here');
$customField->withSubscriber($subscriber3->getId(), 'some value2 here');
$customField->create();
}
public function createSegment(\AcceptanceTester $i) {
$i->wantTo('Create a new MailPoet custom fields segment');
$i->login();
$i->amOnMailpoetPage('Lists');
$i->click('[data-automation-id="new-segment"]');
$segmentTitle = 'MailPoet custom fields segment';
$i->fillField(['name' => 'name'], $segmentTitle);
$i->fillField(['name' => 'description'], 'description');
$i->selectOptionInReactSelect('MailPoet custom field', '[data-automation-id="select-segment-action"]');
$i->waitForElementVisible('[data-automation-id="select-custom-field"]');
$i->selectOptionInReactSelect('Text custom field', '[data-automation-id="select-custom-field"]');
$i->waitForElementVisible('[data-automation-id="text-custom-field-operator"]');
$i->selectOption('[data-automation-id="text-custom-field-operator"]', 'contains');
$i->fillField('[data-automation-id="text-custom-field-value"]', 'value1');
$i->click('Save');
$i->wantTo('Edit the segment');
$i->amOnMailpoetPage('Lists');
$i->waitForElement('[data-automation-id="dynamic-segments-tab"]');
$i->click('[data-automation-id="dynamic-segments-tab"]');
$i->waitForText($segmentTitle);
$i->clickItemRowActionByItemName($segmentTitle, 'Edit');
$i->waitForElementVisible('[data-automation-id="text-custom-field-operator"]');
$i->seeInField('[data-automation-id="text-custom-field-operator"]', 'contains');
$i->seeInField('[data-automation-id="text-custom-field-value"]', 'value1');
$i->waitForText('This segment has 1 subscribers.');
$i->seeNoJSErrors();
$i->wantTo('Check subscribers of the segment');
$i->amOnMailpoetPage('Lists');
$i->waitForElement('[data-automation-id="dynamic-segments-tab"]');
$i->click('[data-automation-id="dynamic-segments-tab"]');
$i->waitForText($segmentTitle);
$i->clickItemRowActionByItemName($segmentTitle, 'View Subscribers');
$i->seeInCurrentUrl('mailpoet-subscribers#');
$i->see($segmentTitle, ['css' => 'select[name=segment]']);
$i->see('test2@example.com');
$i->dontSee('test1@example.com');
$i->dontSee('test3@example.com');
}
}