Skip to content

Commit

Permalink
MNT Add behat test for elemental searchable fields
Browse files Browse the repository at this point in the history
  • Loading branch information
emteknetnz committed Jun 18, 2024
1 parent cde308a commit f920295
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
27 changes: 27 additions & 0 deletions tests/Behat/Context/FixtureContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
use SilverStripe\Core\ClassInfo;
use SilverStripe\ORM\DB;
use SilverStripe\ORM\Queries\SQLInsert;
use SilverStripe\FrameworkTest\Elemental\Model\ElementalSearchableFieldsBlock;
use SilverStripe\FrameworkTest\Elemental\Model\ElementalSearchableFieldsObject;

/**
* Context used to create fixtures in the SilverStripe ORM.
Expand Down Expand Up @@ -44,6 +46,31 @@ public function theHasAContentElementWithContent($type, $pageTitle, $elementTitl
}
}

/**
* @Given /a "([^"]+)" "([^"]+)" with a "([^"]+)" searchable fields block/
*
* @param string $pageTitle
* @param string $type
* @param string $elementTitle
*/
public function thePageHasASearchableFieldsBlock($type, $pageTitle, $elementTitle)
{
$elementalArea = $this->getElementalArea($type, $pageTitle);
$elementalArea->Elements()->add(
$this->getFixtureFactory()->createObject(ElementalSearchableFieldsBlock::class, $elementTitle)
);
}

/**
* @Given /a "([^"]+)" searchable fields object/
*
* @param string $title
*/
public function thePageHasASearchableFieldsObject($title)
{
$this->getFixtureFactory()->createObject(ElementalSearchableFieldsObject::class, $title);
}

/**
* @Given /(?:the|a) "([^"]+)" "([^"]+)" (?:with|has) a broken element named "([^"]+)"/
*/
Expand Down
39 changes: 39 additions & 0 deletions tests/Behat/features/searchable-dropdown-fields.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@javascript
Feature: Searchable fields
As a CMS user
I want searchable dropdown fields to function when used in a content block
So that I can continue to update my content

Background:
Given I add an extension "DNADesign\Elemental\Extensions\ElementalPageExtension" to the "Page" class
And a "page" "Blocks Page" with a "My block" searchable fields block
And a "test-1" searchable fields object
And a "test-2" searchable fields object
And a "test-3" searchable fields object
Given the "group" "EDITOR" has permissions "Access to 'Pages' section"
And I am logged in as a member of "EDITOR" group
And I go to "/admin/pages"
And I left click on "Blocks Page" in the tree
When I see a list of blocks
Then I should see "My block"
When I click on block 1

Scenario: I can use lazy-loaded searchable dropdown fields
When I click on the "#Form_ElementForm_1_PageElements_1_ElementalSearchableFieldsObjectID .ss-searchable-dropdown-field__value-container" element
And I type "test-1" in the field
And I wait 2 seconds
And I press the "Enter" key globally
When I click on the "#Form_ElementForm_1_PageElements_1_ElementalSearchableFieldsObjects .ss-searchable-dropdown-field__value-container" element
And I type "test-2" in the field
And I wait 2 seconds
And I press the "Enter" key globally
And I type "test-3" in the field
And I wait 2 seconds
And I press the "Enter" key globally
When I press the "View actions" button
And I press the "Save" button
And I wait 1 second
Then I should see a "Saved 'My block' successfully" success toast
And I should see "test-1"
And I should see "test-2"
And I should see "test-3"

0 comments on commit f920295

Please sign in to comment.