[Behat] Decouple cart setup from interaction – Given I added vs When I add - Promotion & Some other scenarios#17818
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
❌ Preview Environment deleted from BunnyshellAvailable commands:
|
6d7b955 to
cd683a2
Compare
cd683a2 to
916e527
Compare
Given I added vs When I add - Promotion & Some other scenarios
| Scenario: Preventing payment step completion if there are no available methods | ||
| When I add product "PHP T-Shirt" to the cart | ||
| And I have addressed the cart to "United States" | ||
| And I addressed the cart to "United States" |
There was a problem hiding this comment.
This one shouldn't be in the past tense
| I want to apply discount only on products that are non discounted | ||
| Feature: Receiving percentage discount from cart promotions on non-discounted products only | ||
| In order to avoid receiving stacked discounts on the same product | ||
| As a Customer |
There was a problem hiding this comment.
The Store Owner was the more appropriate actor here 🤔
| Q | A |-----------------|----- | Branch? | 2.0 | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Related tickets | continuation of #17818 and #17819 | License | MIT <!-- - Bug fixes must be submitted against the 1.14 or 2.0 branch - Features and deprecations must be submitted against the 2.1 branch - Make sure that the correct base branch is set To be sure you are not breaking any Backward Compatibilities, check the documentation: https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html -->
Continuation of:
Given I addedvsWhen I add#17785SaveContextfor more flexible suite configuration management #17783Until now, the checkout-related scenarios have been set up as follows:
• UI – via web actions (e.g.
Given I have a product ...actually triggered browser actions to prepare the initial step),• API – a mix of messenger commands and API calls.
During the development of Sylius 2.0, with the introduction of dynamic components, all scenarios involving product-related actions had to be marked as JS to work correctly. This significantly increased build time and reduced overall stability.
This PR focuses on decoupling the Behat architecture to unify the test setup for both UI and API. The goal is to eliminate most JS tags, which should lead to greater stability. Some performance improvements are already noticeable.
This PR doesn’t yet include all refactored scenarios, but at this stage we already observe the following performance gains:
• For non-JS scenarios, the timing is likely similar — some JS scenarios have been converted to non-JS, but at the same time, we benefit from faster setup thanks to the refactor (using messenger commands instead of API calls or UI interactions to prepare tests).
• For JS scenarios executed via Chromedriver, the same applies — some Panther scenarios have been switched to Chromedriver, and performance remains comparable.
JS with Panther: ~30 min → ~20 min