From cdf78183843c0141ec4f5ca634da35e4279ddbac Mon Sep 17 00:00:00 2001 From: Mateusz Zalewski Date: Thu, 14 Mar 2019 14:48:12 +0100 Subject: [PATCH] Tests fixes --- .../managing_taxons/deleting_taxon.feature | 4 +-- .../Behat/Page/Admin/Product/IndexPage.php | 2 +- .../Behat/Page/Admin/Taxon/CreatePage.php | 29 +++++++------------ 3 files changed, 13 insertions(+), 22 deletions(-) diff --git a/features/taxonomy/managing_taxons/deleting_taxon.feature b/features/taxonomy/managing_taxons/deleting_taxon.feature index 1ce2a28b10..bd8245105e 100644 --- a/features/taxonomy/managing_taxons/deleting_taxon.feature +++ b/features/taxonomy/managing_taxons/deleting_taxon.feature @@ -7,13 +7,13 @@ Feature: Deleting a taxon Background: Given I am logged in as an administrator - @ui + @ui @javascript Scenario: Deleted taxon should disappear from the registry Given the store classifies its products as "T-Shirts" When I delete taxon named "T-Shirts" Then the taxon named "T-Shirts" should no longer exist in the registry - @ui + @ui @javascript Scenario: Deleting a taxon with a child does not delete any other taxons Given the store classifies its products as "Main catalog" And the "Main catalog" taxon has children taxon "Shoes" and "Shovels" diff --git a/src/Sylius/Behat/Page/Admin/Product/IndexPage.php b/src/Sylius/Behat/Page/Admin/Product/IndexPage.php index 1b99d4c80b..e717dfe250 100644 --- a/src/Sylius/Behat/Page/Admin/Product/IndexPage.php +++ b/src/Sylius/Behat/Page/Admin/Product/IndexPage.php @@ -53,7 +53,7 @@ final class IndexPage extends CrudIndexPage implements IndexPageInterface protected function getDefinedElements(): array { return array_merge(parent::getDefinedElements(), [ - 'taxon_filter' => '.item a:contains("%taxon%")', + 'taxon_filter' => '.sylius-tree__item a:contains("%taxon%")', ]); } } diff --git a/src/Sylius/Behat/Page/Admin/Taxon/CreatePage.php b/src/Sylius/Behat/Page/Admin/Taxon/CreatePage.php index 60cda33073..88321b745f 100644 --- a/src/Sylius/Behat/Page/Admin/Taxon/CreatePage.php +++ b/src/Sylius/Behat/Page/Admin/Taxon/CreatePage.php @@ -18,6 +18,7 @@ use Behat\Mink\Element\NodeElement; use Behat\Mink\Exception\ElementNotFoundException; use Sylius\Behat\Behaviour\SpecifiesItsCode; use Sylius\Behat\Page\Admin\Crud\CreatePage as BaseCreatePage; +use Sylius\Behat\Service\JQueryHelper; use Sylius\Behat\Service\SlugGenerationHelper; use Sylius\Component\Core\Model\TaxonInterface; use Webmozart\Assert\Assert; @@ -47,9 +48,13 @@ class CreatePage extends BaseCreatePage implements CreatePageInterface public function deleteTaxonOnPageByName(string $name): void { $leaves = $this->getLeaves(); + /** @var NodeElement $leaf */ foreach ($leaves as $leaf) { - if ($leaf->getText() === $name) { - $leaf->getParent()->find('css', '.ui.red.button')->press(); + if ($leaf->find('css', '.sylius-tree__title')->getText() === $name) { + $leaf->find('css', '.sylius-tree__action__trigger')->click(); + JQueryHelper::waitForAsynchronousActionsToFinish($this->getSession()); + $leaf->find('css', '.sylius-tree__action button')->press(); + $this->getElement('confirmation_button')->click(); return; } @@ -99,22 +104,7 @@ class CreatePage extends BaseCreatePage implements CreatePageInterface public function getLeaves(TaxonInterface $parentTaxon = null): array { - $tree = $this->getElement('tree'); - Assert::notNull($tree); - /** @var NodeElement[] $leaves */ - $leaves = $tree->findAll('css', '.item > .content > .header > a'); - - if (null === $parentTaxon) { - return $leaves; - } - - foreach ($leaves as $leaf) { - if ($leaf->getText() === $parentTaxon->getName()) { - return $leaf->findAll('css', '.item > .content > .header'); - } - } - - return []; + return $this->getDocument()->findAll('css', '.sylius-tree__item'); } public function activateLanguageTab(string $locale): void @@ -142,12 +132,13 @@ class CreatePage extends BaseCreatePage implements CreatePageInterface { return array_merge(parent::getDefinedElements(), [ 'code' => '#sylius_taxon_code', + 'confirmation_button' => '#confirmation-button', 'description' => '#sylius_taxon_translations_en_US_description', 'images' => '#sylius_taxon_images', 'language_tab' => '[data-locale="%locale%"] .title', 'name' => '#sylius_taxon_translations_%language%_name', 'slug' => '#sylius_taxon_translations_%language%_slug', - 'tree' => '.ui.list', + 'tree' => '.sylius-tree', ]); }