Conversation
Previously, when there were any issues related to icons — such as an
invalid, misspelled, or missing icon name (e.g.
ux_icon('tabler:brand-instagra')) — the application would throw an
IconNotFoundException, resulting in a 500 error and breaking the
rendering of components like the footer.
To prevent this issue:
- Added ignore_not_found: true to the ux_icons.yaml configuration file.
- This ensures that when an icon is missing or not found, no exception
is thrown, and the icon is simply not rendered.
Benefits:
Ensures that templates using icons render properly even if some icons
are unavailable


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced an option to bypass errors for missing icons, enhancing
flexibility and reliability in icon management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
WalkthroughA new configuration option has been added to the Changes
Sequence Diagram(s)sequenceDiagram
participant App as Application
participant Config as ux_icons Config
participant IconHandler as Icon Handler
App->>Config: Load configuration for ux_icons
Config-->>App: Return config with ignore_not_found=true
App->>IconHandler: Request icon
IconHandler-->>App: If icon is missing, return gracefully (ignore error)
Possibly related PRs
Suggested reviewers
Poem
Tip ⚡💬 Agentic Chat (Pro Plan, General Availability)
✨ Finishing Touches
🪧 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:
|
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/Sylius/Bundle/UiBundle/Resources/config/packages/ux_icons.yaml (1)
4-4: Review Comment: Correctly Added New Configuration OptionThe addition of
ignore_not_found: trueis correctly indented and placed as a sibling todefault_icon_attributesunder theux_iconskey. This change fulfills the PR objective of modifying error handling for missing icons. For enhanced clarity, consider adding an inline comment to briefly explain the intended behavior of this option, which could help future maintainers better understand its purpose.
…` and related scenarios) (#17816) | Q | A |-----------------|----- | Branch? | 2.0 <!-- see the comment below --> | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no <!-- don't forget to update the UPGRADE-*.md file --> | License | MIT Continuation of: - #17785 - #17782 - #17783 Until 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**
…unnecessary JS scenarios to non-JS (#17803) | Q | A |-----------------|----- | Branch? | 2.0 <!-- see the comment below --> | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no <!-- don't forget to update the UPGRADE-*.md file --> | License | MIT
There was a problem hiding this comment.
Actionable comments posted: 5
🔭 Outside diff range comments (1)
src/Sylius/Behat/Context/Setup/CartContext.php (1)
225-263: 🛠️ Refactor suggestionUndefined variable
instanceof ShopUserInterface
branch. When the user is an API token bearer (or any other
non‑ShopUserInterface scenario) the variable is undefined.- if ($this->sharedStorage->has('token') && $this->sharedStorage->has('user')) { + $email = null; + if ($this->sharedStorage->has('token') && $this->sharedStorage->has('user')) {
🧹 Nitpick comments (7)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
37-43: Use constant‑time comparison for passwords (even in tests).
===is fine for Behat but encourages an anti‑pattern in copy‑pasted code.
hash_equals()is the cheap, timing‑attack‑safe drop‑in.-return $password === $this->sharedStorage->get('scenario_setup_password') +return hash_equals($this->sharedStorage->get('scenario_setup_password'), $password)src/Sylius/Bundle/ApiBundle/spec/Assigner/OrderPromotionCodeAssignerSpec.php (2)
47-59: Spec encourages an extra DB call for empty coupon code.An empty string is semantically “no coupon” – the production code still
hits the repository. Avoiding the call removes useless I/O and makes the
intent clearer.-$promotionCouponRepository->findOneBy(['code' => ''])->shouldBeCalled(); +$promotionCouponRepository->findOneBy(Argument::cetera())->shouldNotBeCalled();
61-73: Make the stub explicit for readability.
findOneBy()->willReturn(null);documents the expectation and prevents
future “strict prophecy” failures if return‑type hints change.- $promotionCouponRepository->findOneBy(['code' => 'invalidCode'])->willReturn(null); + $promotionCouponRepository + ->findOneBy(['code' => 'invalidCode']) + ->willReturn(null);src/Sylius/Behat/Context/Api/Shop/CartContext.php (2)
75-80: Step lacks ownership validation – possible false‑positive tests.
iSeeTheSummaryOfMyPreviousCart()fetches anyOrderInterfaceand
blindly shows it. If the order belongs to a different customer the step
will still pass, masking an ACL regression.Consider asserting that the authenticated/guest user really owns
$cart.
323-329: Minor optimisation – reuse the response object.The same GET is executed twice (once inside
show(), once for the
assert). Cache it to avoid network noise and ease debugging.- Assert::same( - $this->shopClient->show(Resources::ORDERS, $order->getTokenValue())->getStatusCode(), + $response = $this->shopClient->show(Resources::ORDERS, $order->getTokenValue()); + Assert::same( + $response->getStatusCode(),src/Sylius/Behat/Context/Setup/CartContext.php (2)
177-205: Similar null‑ID risk when removing items / variants.The same
first()->getId()pattern appears twice. Guard as above or
refactor to a helper.
286-298:pickupCart($tokenValue)reuses caller’s token even when invalid.If
$tokenValueis a leftover from a deleted cart the call raises
Integrity constraintdownstream. Consider always passingnullhere
and lettingpickupCart()generate a fresh token.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (113)
.github/workflows/ci_e2e-mysql.yaml(1 hunks)behat.yml.dist(1 hunks)features/admin/inventory/managing_inventory/filtering_inventory_by_product.feature(1 hunks)features/admin/securing_access_to_account_after_using_back_button_after_logging_out.feature(1 hunks)features/shop/account/customer_account/address_book/editing_address.feature(1 hunks)features/shop/account/customer_account/address_book/viewing_addresses_created_after_checkout.feature(1 hunks)features/shop/account/customer_account/changing_password.feature(1 hunks)features/shop/cart/shopping_cart/adding_product_to_cart.feature(2 hunks)features/shop/cart/shopping_cart/adding_product_to_cart_with_prices_dependent_on_channel.feature(1 hunks)features/shop/cart/shopping_cart/adding_product_with_discounted_catalog_price_to_cart.feature(1 hunks)features/shop/cart/shopping_cart/adding_product_with_variants_with_discounted_catalog_price_to_cart.feature(1 hunks)features/shop/cart/shopping_cart/adding_products_with_quantity_to_cart.feature(1 hunks)features/shop/cart/shopping_cart/allowing_access_only_for_correctly_logged_in_users.feature(4 hunks)features/shop/cart/shopping_cart/clearing_cart_after_logging_out.feature(1 hunks)features/shop/cart/shopping_cart/e2e/adding_product_to_cart.feature(1 hunks)features/shop/cart/shopping_cart/e2e/removing_cart_item.feature(1 hunks)features/shop/cart/shopping_cart/e2e/ui/adding_product_to_cart_with_prices_dependent_on_channel.feature(1 hunks)features/shop/cart/shopping_cart/removing_cart_item.feature(2 hunks)features/shop/cart/shopping_cart/seeing_detailed_information_about_cart.feature(1 hunks)features/shop/cart/shopping_cart/seeing_shipping_costs_only_when_required.feature(1 hunks)features/shop/cart/shopping_cart/updating_cart_on_checkout.feature(1 hunks)features/shop/checkout/addressing_order/sign_in_during_addressing_step.feature(1 hunks)features/shop/checkout/paying_for_order/informing_customer_about_order_total_changes.feature(3 hunks)features/shop/checkout/prices_get_updated_throughout_checkout.feature(2 hunks)features/shop/checkout/seeing_order_summary/seeing_addresses_on_order_summary_page.feature(1 hunks)features/shop/checkout/seeing_order_summary/seeing_addresses_on_order_summary_page_when_shipping_is_required_one_in_checkout.feature(1 hunks)features/shop/checkout/seeing_order_summary/seeing_province_created_manually_on_order_summary_page.feature(1 hunks)features/shop/checkout/skipping_payment_step_when_order_total_is_zero_after_applying_coupon.feature(1 hunks)features/shop/inventory/cart_inventory/e2e/prevent_buying_more_products_than_available_in_a_stock.feature(2 hunks)features/shop/inventory/cart_inventory/e2e/ui/prevent_buying_more_products_than_available_in_a_stock.feature(1 hunks)features/shop/inventory/cart_inventory/e2e/ui/verify_inventory_quantity_when_updating_cart_summary.feature(1 hunks)features/shop/inventory/cart_inventory/e2e/verify_inventory_quantity_when_updating_cart_summary.feature(1 hunks)features/shop/inventory/cart_inventory/verify_inventory_quantity_when_updating_cart_summary.feature(1 hunks)features/shop/inventory/checkout_inventory/validating_product_quantity_on_checkout_complete.feature(1 hunks)features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_expiration_date.feature(1 hunks)features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_full_percentage.feature(1 hunks)features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_per_customer_usage_limit.feature(2 hunks)features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_usage_limit.feature(2 hunks)features/shop/promotion/applying_promotion_coupon/denying_usage_of_unexisting_promotion_coupon.feature(1 hunks)features/shop/promotion/applying_promotion_coupon/e2e/applying_promotion_coupon.feature(1 hunks)features/shop/promotion/applying_promotion_coupon/e2e/removing_promotion_coupon.feature(1 hunks)features/shop/promotion/applying_promotion_coupon/receiving_no_discount_if_coupon_promotion_is_not_eligible.feature(1 hunks)features/shop/promotion/applying_promotion_rules/reapplying_promotion_on_cart_change.feature(2 hunks)features/shop/promotion/applying_promotion_rules/receiving_discount_based_on_nth_order_for_guest_customer.feature(1 hunks)features/shop/promotion/complex_promotions.feature(1 hunks)features/shop/promotion/receiving_discount/receiving_percentage_discount_on_shipping.feature(3 hunks)features/shop/promotion/reverting_discount/reverting_previously_applied_discount_on_cart.feature(1 hunks)features/shop/shipping/applying_shipping_fee/applying_correct_shipping_fee_on_order.feature(1 hunks)features/shop/shipping/viewing_shipping_methods/viewing_available_shipping_methods_based_on_channel_as_a_visitor.feature(1 hunks)features/shop/taxation/applying_taxes/applying_correct_taxes_for_items_with_the_same_tax_rate.feature(1 hunks)features/shop/taxation/applying_taxes/applying_correct_taxes_on_visitor_cart.feature(1 hunks)features/shop/taxation/applying_taxes_based_on_order_item_units_calculation_strategy/applying_correct_taxes_for_item_units_with_the_same_tax_rate.feature(1 hunks)src/Sylius/Behat/Client/ApiPlatformSecurityClient.php(2 hunks)src/Sylius/Behat/Context/Api/Admin/ManagingAdministratorsContext.php(3 hunks)src/Sylius/Behat/Context/Api/Admin/ManagingCustomersContext.php(3 hunks)src/Sylius/Behat/Context/Api/Admin/ResettingPasswordContext.php(3 hunks)src/Sylius/Behat/Context/Api/Shop/CartContext.php(10 hunks)src/Sylius/Behat/Context/Api/Shop/CheckoutContext.php(22 hunks)src/Sylius/Behat/Context/Api/Shop/CustomerContext.php(4 hunks)src/Sylius/Behat/Context/Api/Shop/LoginContext.php(5 hunks)src/Sylius/Behat/Context/Api/Shop/RegistrationContext.php(3 hunks)src/Sylius/Behat/Context/Cli/ChangeAdminPasswordContext.php(5 hunks)src/Sylius/Behat/Context/Setup/AdminUserContext.php(3 hunks)src/Sylius/Behat/Context/Setup/CartContext.php(7 hunks)src/Sylius/Behat/Context/Setup/CatalogPromotionContext.php(1 hunks)src/Sylius/Behat/Context/Setup/Checkout/AddressContext.php(2 hunks)src/Sylius/Behat/Context/Setup/Checkout/PaymentContext.php(1 hunks)src/Sylius/Behat/Context/Setup/Checkout/ShippingContext.php(1 hunks)src/Sylius/Behat/Context/Setup/CustomerContext.php(3 hunks)src/Sylius/Behat/Context/Setup/PaymentContext.php(3 hunks)src/Sylius/Behat/Context/Setup/ProductContext.php(5 hunks)src/Sylius/Behat/Context/Setup/PromotionContext.php(4 hunks)src/Sylius/Behat/Context/Setup/UserContext.php(5 hunks)src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php(1 hunks)src/Sylius/Behat/Context/Ui/Admin/ManagingCustomersContext.php(2 hunks)src/Sylius/Behat/Context/Ui/Shop/CartContext.php(5 hunks)src/Sylius/Behat/Context/Ui/Shop/Checkout/CheckoutCompleteContext.php(7 hunks)src/Sylius/Behat/Context/Ui/Shop/Checkout/CheckoutThankYouContext.php(3 hunks)src/Sylius/Behat/Context/Ui/Shop/Checkout/RegistrationAfterCheckoutContext.php(2 hunks)src/Sylius/Behat/Context/Ui/Shop/CheckoutContext.php(2 hunks)src/Sylius/Behat/Context/Ui/Shop/ProductContext.php(2 hunks)src/Sylius/Behat/Context/Ui/Shop/RegistrationContext.php(3 hunks)src/Sylius/Behat/Element/Admin/Customer/FormElement.php(2 hunks)src/Sylius/Behat/Element/Shop/Account/RegisterElement.php(3 hunks)src/Sylius/Behat/Element/Shop/Account/RegisterElementInterface.php(1 hunks)src/Sylius/Behat/Page/Admin/Account/LoginPage.php(2 hunks)src/Sylius/Behat/Page/Admin/Account/ResetPasswordPage.php(1 hunks)src/Sylius/Behat/Page/Admin/Administrator/CreatePage.php(1 hunks)src/Sylius/Behat/Page/Admin/Administrator/FormAwareTrait.php(2 hunks)src/Sylius/Behat/Page/Shop/Account/ChangePasswordPage.php(2 hunks)src/Sylius/Behat/Page/Shop/Account/LoginPage.php(2 hunks)src/Sylius/Behat/Page/Shop/Account/ResetPasswordPage.php(2 hunks)src/Sylius/Behat/Page/Shop/Checkout/AddressPage.php(3 hunks)src/Sylius/Behat/Page/Shop/Product/ShowPage.php(1 hunks)src/Sylius/Behat/Resources/config/services/contexts/api/admin.xml(1 hunks)src/Sylius/Behat/Resources/config/services/contexts/cli.xml(1 hunks)src/Sylius/Behat/Resources/config/services/contexts/setup.xml(3 hunks)src/Sylius/Behat/Resources/config/services/elements/admin.xml(1 hunks)src/Sylius/Behat/Resources/config/services/elements/shop.xml(1 hunks)src/Sylius/Behat/Resources/config/services/pages/admin/account.xml(1 hunks)src/Sylius/Behat/Resources/config/services/pages/admin/admin_user.xml(1 hunks)src/Sylius/Behat/Resources/config/services/pages/shop/account.xml(2 hunks)src/Sylius/Behat/Resources/config/services/pages/shop/checkout.xml(1 hunks)src/Sylius/Behat/Resources/config/suites/api/account/address_book.yml(1 hunks)src/Sylius/Behat/Resources/config/suites/api/inventory/checkout_inventory.yaml(1 hunks)src/Sylius/Behat/Resources/config/suites/ui/account/address_book.yml(1 hunks)src/Sylius/Behat/Resources/config/suites/ui/inventory/checkout_inventory.yml(1 hunks)src/Sylius/Behat/Service/Factory/AddressFactory.php(2 hunks)src/Sylius/Behat/Service/Factory/AddressFactoryInterface.php(1 hunks)src/Sylius/Bundle/ApiBundle/Assigner/OrderPromotionCodeAssigner.php(2 hunks)src/Sylius/Bundle/ApiBundle/Modifier/OrderAddressModifier.php(1 hunks)src/Sylius/Bundle/ApiBundle/Tests/Application/src/Tests/DisablingDocumentationTest.php(0 hunks)src/Sylius/Bundle/ApiBundle/spec/Assigner/OrderPromotionCodeAssignerSpec.php(3 hunks)
💤 Files with no reviewable changes (1)
- src/Sylius/Bundle/ApiBundle/Tests/Application/src/Tests/DisablingDocumentationTest.php
✅ Files skipped from review due to trivial changes (17)
- features/shop/account/customer_account/address_book/editing_address.feature
- features/shop/cart/shopping_cart/adding_product_with_variants_with_discounted_catalog_price_to_cart.feature
- features/shop/account/customer_account/changing_password.feature
- behat.yml.dist
- features/admin/inventory/managing_inventory/filtering_inventory_by_product.feature
- features/admin/securing_access_to_account_after_using_back_button_after_logging_out.feature
- src/Sylius/Bundle/ApiBundle/Modifier/OrderAddressModifier.php
- features/shop/checkout/paying_for_order/informing_customer_about_order_total_changes.feature
- features/shop/checkout/addressing_order/sign_in_during_addressing_step.feature
- features/shop/cart/shopping_cart/e2e/adding_product_to_cart.feature
- src/Sylius/Behat/Context/Setup/CatalogPromotionContext.php
- src/Sylius/Behat/Resources/config/services/contexts/api/admin.xml
- features/shop/promotion/applying_promotion_rules/reapplying_promotion_on_cart_change.feature
- features/shop/cart/shopping_cart/e2e/removing_cart_item.feature
- features/shop/inventory/checkout_inventory/validating_product_quantity_on_checkout_complete.feature
- features/shop/shipping/applying_shipping_fee/applying_correct_shipping_fee_on_order.feature
- features/shop/promotion/applying_promotion_coupon/e2e/removing_promotion_coupon.feature
🚧 Files skipped from review as they are similar to previous changes (13)
- src/Sylius/Behat/Client/ApiPlatformSecurityClient.php
- features/shop/checkout/prices_get_updated_throughout_checkout.feature
- features/shop/promotion/receiving_discount/receiving_percentage_discount_on_shipping.feature
- src/Sylius/Behat/Service/Factory/AddressFactoryInterface.php
- src/Sylius/Behat/Context/Ui/Shop/ProductContext.php
- src/Sylius/Behat/Context/Setup/Checkout/PaymentContext.php
- src/Sylius/Behat/Resources/config/services/contexts/setup.xml
- features/shop/cart/shopping_cart/allowing_access_only_for_correctly_logged_in_users.feature
- src/Sylius/Behat/Context/Setup/ProductContext.php
- src/Sylius/Behat/Context/Ui/Shop/CheckoutContext.php
- src/Sylius/Behat/Context/Setup/Checkout/AddressContext.php
- src/Sylius/Behat/Context/Ui/Shop/CartContext.php
- src/Sylius/Behat/Context/Ui/Shop/Checkout/CheckoutCompleteContext.php
🧰 Additional context used
🧬 Code Graph Analysis (19)
src/Sylius/Behat/Page/Shop/Checkout/AddressPage.php (4)
src/Sylius/Behat/Page/Shop/Page.php (1)
Page(20-65)src/Sylius/Behat/Service/DriverHelper.php (1)
DriverHelper(22-40)src/Sylius/Behat/Page/SymfonyPage.php (1)
getElement(22-27)src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
retrieveSecurePassword(45-52)
src/Sylius/Behat/Page/Admin/Administrator/CreatePage.php (3)
src/Sylius/Behat/Page/Shop/Page.php (1)
Page(20-65)src/Sylius/Behat/Element/Admin/Customer/FormElement.php (1)
__construct(32-38)src/Sylius/Behat/Element/Shop/Account/RegisterElement.php (1)
__construct(28-35)
src/Sylius/Behat/Context/Ui/Shop/Checkout/RegistrationAfterCheckoutContext.php (1)
src/Sylius/Behat/Context/Ui/Shop/RegistrationContext.php (3)
When(97-101)When(103-107)When(117-121)
src/Sylius/Behat/Context/Api/Admin/ManagingCustomersContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
replaceWithSecurePassword(23-35)
src/Sylius/Behat/Context/Setup/UserContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (3)
replaceWithSecurePassword(23-35)retrieveSecurePassword(45-52)confirmSecurePassword(37-43)
src/Sylius/Behat/Context/Api/Shop/LoginContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (3)
retrieveSecurePassword(45-52)replaceWithSecurePassword(23-35)confirmSecurePassword(37-43)
src/Sylius/Behat/Context/Api/Shop/CustomerContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (3)
retrieveSecurePassword(45-52)replaceWithSecurePassword(23-35)confirmSecurePassword(37-43)
src/Sylius/Behat/Context/Setup/AdminUserContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
replaceWithSecurePassword(23-35)
src/Sylius/Behat/Page/Shop/Account/ResetPasswordPage.php (4)
src/Sylius/Behat/Page/Shop/Page.php (1)
Page(20-65)src/Sylius/Behat/Page/SymfonyPage.php (2)
SymfonyPage(20-33)getElement(22-27)src/Sylius/Behat/Page/Admin/Account/LoginPage.php (1)
__construct(26-33)src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (2)
replaceWithSecurePassword(23-35)confirmSecurePassword(37-43)
src/Sylius/Behat/Page/Admin/Administrator/FormAwareTrait.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
replaceWithSecurePassword(23-35)
src/Sylius/Behat/Context/Ui/Shop/Checkout/CheckoutThankYouContext.php (1)
src/Sylius/Behat/Context/Api/Shop/CheckoutContext.php (6)
Then(652-666)Then(836-841)Then(911-915)Then(992-1008)Then(1128-1132)Then(1254-1264)
src/Sylius/Behat/Context/Api/Shop/RegistrationContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
replaceWithSecurePassword(23-35)
src/Sylius/Behat/Element/Admin/Customer/FormElement.php (2)
src/Sylius/Behat/Element/Shop/Account/RegisterElement.php (1)
__construct(28-35)src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
replaceWithSecurePassword(23-35)
src/Sylius/Behat/Context/Api/Admin/ManagingAdministratorsContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
replaceWithSecurePassword(23-35)
src/Sylius/Behat/Context/Ui/Admin/ManagingCustomersContext.php (5)
src/Sylius/Behat/Context/Ui/Shop/Checkout/RegistrationAfterCheckoutContext.php (1)
When(45-49)src/Sylius/Behat/Context/Ui/Shop/RegistrationContext.php (3)
When(97-101)When(103-107)When(117-121)src/Sylius/Behat/Context/Api/Admin/ManagingAdministratorsContext.php (1)
iSpecifyItsPasswordAs(109-114)src/Sylius/Behat/Context/Api/Admin/ManagingCustomersContext.php (1)
iSpecifyItsPasswordAs(145-150)src/Sylius/Behat/Context/Ui/Admin/ManagingAdministratorsContext.php (1)
iSpecifyItsPasswordAs(129-132)
src/Sylius/Behat/Page/Admin/Account/LoginPage.php (4)
src/Sylius/Behat/Page/SymfonyPage.php (1)
SymfonyPage(20-33)src/Sylius/Behat/Page/Shop/Account/LoginPage.php (2)
LoginPage(24-74)__construct(28-36)src/Sylius/Behat/Page/Admin/Account/ResetPasswordPage.php (1)
__construct(27-34)src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
retrieveSecurePassword(45-52)
src/Sylius/Behat/Context/Cli/ChangeAdminPasswordContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (2)
replaceWithSecurePassword(23-35)retrieveSecurePassword(45-52)
src/Sylius/Behat/Context/Setup/CustomerContext.php (1)
src/Sylius/Behat/Context/Ui/Admin/Helper/SecurePasswordTrait.php (1)
replaceWithSecurePassword(23-35)
src/Sylius/Bundle/ApiBundle/spec/Assigner/OrderPromotionCodeAssignerSpec.php (1)
src/Sylius/Bundle/ApiBundle/Assigner/OrderPromotionCodeAssigner.php (1)
assign(30-44)
🪛 YAMLlint (1.35.1)
.github/workflows/ci_e2e-mysql.yaml
[warning] 204-204: too many spaces after hyphen
(hyphens)
⏰ Context from checks skipped due to timeout of 90000ms (590)
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.2, PostgreSQL 16.4
- GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter winzou_state_machine
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.3, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^7.1, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 11.4.3, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.9, State Machine Adapter symfony_workflow
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^7.1
- GitHub Check: [2.0] Packages / PHP 8.3, Symfony ^6.4
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^7.1
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] Packages / PHP 8.2, Symfony ^6.4
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: Frontend / NodeJS 20.x
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^7.1 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.4, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.3, Symfony ^6.4, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^7.1, PostgreSQL 14.13
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 16.4
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.8
- GitHub Check: [2.0] End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 14.13
🔇 Additional comments (203)
.github/workflows/ci_e2e-mysql.yaml (2)
199-202: Approve readability improvements for Chromedriver Behat run.Converting the chained one‑liners into a multiline shell block with explicit backslashes makes the retry logic clear and maintains the same behavior.
205-209: Approve readability improvements for flaky (@failing) scenarios.The multiline format for the
@failingtag mirrors the main Chromedriver step and thecontinue-on-error: truesetting is correctly scoped to handle known flakiness.features/shop/cart/shopping_cart/seeing_detailed_information_about_cart.feature (1)
11-20: Test structure improvements align with BDD best practicesThe changes to the scenario steps follow good BDD practices by:
- Properly separating setup conditions (Given) from actions being tested (When)
- Using past tense in Given steps ("I added" instead of "I add")
- Adding explicit verification steps like "When I check items in my cart"
- Removing the
@javascripttag which can improve test speed and stabilityThese changes maintain the same test coverage while making the scenarios more readable and maintainable.
src/Sylius/Behat/Resources/config/suites/api/account/address_book.yml (1)
26-26: Appropriate addition of checkout contextAdding the
sylius.behat.context.setup.checkoutcontext to the address book test suite is consistent with the broader restructuring of checkout-related Behat contexts in this PR. This ensures that address book tests have access to the necessary checkout setup methods and maintains consistency across related features.features/shop/checkout/skipping_payment_step_when_order_total_is_zero_after_applying_coupon.feature (1)
17-21: Test improvements enhance clarity and consistencyThe changes to this scenario improve the test structure by:
- Using past tense in setup steps ("I added", "I applied") for more consistent language
- Properly distinguishing between setup conditions (Given) and the action being tested (When)
- Replacing
@javascriptwith@no-apitag to better define the test execution contextThese adjustments make the scenario more readable and align with the standardization patterns seen across other feature files in this PR.
features/shop/cart/shopping_cart/updating_cart_on_checkout.feature (1)
12-15: Improved test structure and consistencyThe changes to this scenario enhance both readability and stability:
- Replacing the browser-specific
@mink:chromedrivertag with@no-api @uialigns with the standardization across other test files- Moving the quantity change step earlier in the flow provides a more logical sequence of actions
- The scenario maintains the same test coverage while making the test flow clearer
These improvements contribute to a more maintainable and consistent test suite.
features/shop/taxation/applying_taxes/applying_correct_taxes_on_visitor_cart.feature (1)
28-29: Improved test step separation and clarityThe scenario has been refactored to separate the cart addressing action from checking the cart details. This change enhances test readability by clearly distinguishing between these two discrete operations, making the test flow more explicit.
src/Sylius/Behat/Resources/config/services/elements/shop.xml (1)
21-23: Injection of shared storage into registration elementThe
RegisterElementnow receives the shared storage service as a constructor argument, which aligns with broader security enhancements in the Behat contexts. This change supports the secure password handling pattern being implemented across test components.features/shop/cart/shopping_cart/clearing_cart_after_logging_out.feature (3)
11-11: Simplified Behat tagsThe
@mink:chromedrivertag has been removed, leaving just@no-api @ui. This simplification standardizes scenario annotations and reduces unnecessary driver specifications.
14-15: Explicit separation of cart actions and verificationThe steps have been refactored to use past tense for the action ("I added product") and introduce a distinct verification step ("When I check the details of my cart"). This pattern improves test clarity by separating actions from verifications.
17-17: Improved test step semanticsChanging "And I see the summary" to "When I see the summary" improves the semantic flow of the test by properly using "When" for actions and "Then" for assertions. This makes the Gherkin more aligned with BDD best practices.
src/Sylius/Behat/Context/Setup/CustomerContext.php (3)
18-18: Added SecurePasswordTrait for enhanced password handlingThe import of
SecurePasswordTraitsupports a more secure approach to password management in tests.
30-31: Incorporated SecurePasswordTrait into CustomerContextUsing the
SecurePasswordTraitcentralizes secure password handling logic, promoting consistent password management across test components.
237-237: Enhanced security with secure password replacementThe direct password assignment has been replaced with
replaceWithSecurePasswordmethod, which stores both the original password (for test scenario setup) and a more secure password in shared storage. This ensures passwords are handled securely during tests while maintaining test maintainability.features/shop/promotion/applying_promotion_coupon/e2e/applying_promotion_coupon.feature (2)
14-14: Tag standardization looks good.The change from
@mink:chromedriverto@javascriptaligns with the broader effort to standardize test annotations across the codebase, making test execution more flexible and not tied to a specific browser driver.
22-29: Great addition of test coverage for invalid coupon handling.This new scenario properly tests an important edge case - what happens when a user applies an invalid coupon code. The test verifies three critical aspects:
- The user is notified about the invalid coupon
- The cart total remains unchanged at $100.00
- No discount is applied
This ensures proper error handling and user feedback for invalid coupons, enhancing the test coverage.
src/Sylius/Behat/Resources/config/services/pages/shop/checkout.xml (1)
27-27: Appropriate dependency injection for secure password handling.Adding the shared storage dependency to the AddressPage service aligns with the broader changes to enhance secure password handling throughout the testing infrastructure. This enables the AddressPage to use the SecurePasswordTrait for better credential management in tests.
features/shop/promotion/complex_promotions.feature (2)
36-36: Step phrasing standardization looks good.Changing "When I proceed with 'DHL' shipping method" to "When I chose 'DHL' shipping method" improves consistency with other feature files and standardizes the language used for describing shipping method selection.
38-38: Improved test specificity and clarity.The change to assert the discount at the product level ("Black Sabbath jacket") rather than a general statement makes the test more precise and easier to debug if it fails. This provides clearer verification of the expected discount behavior.
features/shop/checkout/seeing_order_summary/seeing_province_created_manually_on_order_summary_page.feature (2)
17-17: Tag simplification looks good.Removing the
@javascripttag while keeping@api @uialigns with the effort to standardize test annotations across feature files and avoid redundancy.
20-22: Effective simplification of checkout steps.Consolidating multiple granular checkout steps into higher-level steps improves test readability and maintainability. The simplified steps focus on what's being tested (the presence of provinces on the summary page) rather than the detailed mechanics of the checkout process.
This approach makes the tests more resilient to minor UI changes in the checkout flow while still verifying the core functionality.
src/Sylius/Behat/Resources/config/services/pages/admin/admin_user.xml (1)
12-12: Enhances security with shared storage for password handlingThis addition of the shared storage service as a constructor argument properly integrates the page with Sylius's secure password handling system. This is part of a broader improvement across Behat tests to manage passwords more securely.
features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_full_percentage.feature (2)
14-14: Improved tag selection for broader test coverageReplacing browser-specific tags with the more generic
@api @uitags allows this test to be run across multiple contexts, improving test coverage and flexibility.
17-17: Enhanced step phrasing for command-based implementationThe updated phrasing "I applied the coupon" (past tense) better aligns with the command-based implementation and creates more consistent terminology across feature files.
features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_expiration_date.feature (3)
14-14: Improved tag selection for broader test coverageReplacing browser-specific tags with the more generic
@api @uitags allows these tests to be run across multiple contexts, improving test coverage and flexibility.Also applies to: 23-23
18-18: Enhanced step phrasing for command-based implementationThe updated phrasing "I applied the coupon" (past tense) better aligns with the command-based implementation and creates more consistent terminology across feature files.
Also applies to: 27-27
29-29: Simplified verification of expired coupon scenarioThe test now focuses on verifying the core functionality (no discount applied) rather than UI notifications, making the test more robust and less dependent on UI implementation details.
src/Sylius/Behat/Resources/config/services/contexts/cli.xml (1)
40-40: Enhances security with shared storage for password handlingThis addition of the shared storage service as a constructor argument properly integrates the CLI context with Sylius's secure password handling system. This matches the pattern used across other contexts and pages, creating a consistent approach to password management in tests.
features/shop/cart/shopping_cart/seeing_shipping_costs_only_when_required.feature (5)
17-17: Improved step definition clarityThe step has been reworded to be more explicit by specifying the exact product name and using past tense. This makes the test scenario more readable and maintainable.
21-21: Simplified test tagsThe
@javascripttag has been removed, leaving only@api @uitags. This aligns with the standardization of tags across feature files, focusing on the primary test interfaces.
23-25: Improved step definitions and sequenceSteps have been rewritten to explicitly name the product being added to the cart and use past tense format. This makes the scenario easier to understand and maintain.
28-28: Standardized test tagsThe
@javascripttag has been removed, keeping only@api @uiwhich is consistent with the tag standardization across the feature files.
30-33: Enhanced step clarity and sequenceSteps have been rewritten to be more explicit and use consistent past tense. This improves readability and makes the test scenario more maintainable.
features/shop/promotion/applying_promotion_coupon/denying_usage_of_unexisting_promotion_coupon.feature (3)
14-14: Simplified test tagsThe
@mink:chromedrivertag has been removed, leaving only@api @uitags. This aligns with the standardization of tags across feature files in the PR.
17-17: Improved step definition clarityThe step has been reworded to use past tense ("I applied" instead of using present tense), which is consistent with the standardization of step phrasing throughout the codebase.
19-19: Simplified assertion stepThe assertion is now more direct and focuses on verifying that the cart total remains at $100.00, confirming that the invalid coupon had no effect.
features/shop/cart/shopping_cart/removing_cart_item.feature (6)
11-11: Standardized test tagsThe
@javascriptor@mink:chromedrivertags have been removed, keeping only@api @ui. This is consistent with the tag standardization across feature files in this PR.
14-16: Improved step definition clarity and sequenceSteps have been rewritten to use consistent past tense ("I added" and "I removed") and a clear sequence with the summary check at the end. This makes the test scenario more readable and maintainable.
20-20: Standardized test tagsTags have been simplified to
@api @ui, removing any driver-specific tags, which aligns with the standardization effort throughout the codebase.
23-26: Enhanced step clarity and sequenceThe steps now follow a logical sequence with cart actions first (adding products, removing a product) followed by checking the cart summary. The consistent use of past tense improves readability.
29-29: Standardized test tagsTags have been simplified to follow the consistent pattern of using only
@api @uiacross feature files.
40-44: Improved step definition consistency and sequenceSteps have been rewritten using past tense and placed in a logical sequence, with the cart summary check occurring after all modifications. This makes the scenario easier to follow and maintain.
src/Sylius/Behat/Resources/config/suites/ui/account/address_book.yml (3)
15-15: Added payment transformation contextThe addition of the payment transformation context (
sylius.behat.context.transform.payment) enhances the test suite's ability to handle payment-related transformations in test scenarios.
18-18: Added shipping method transformation contextThe addition of the shipping method transformation context (
sylius.behat.context.transform.shipping_method) enables the test suite to properly transform shipping method references in test scenarios.
24-25: Enhanced checkout setup capabilitiesThe addition of checkout and checkout address setup contexts provides more robust support for testing scenarios that involve checkout processes and address handling, improving test coverage.
features/shop/promotion/reverting_discount/reverting_previously_applied_discount_on_cart.feature (2)
14-14: Improved test flow separation and clarityThe changes to this scenario improve the test structure by:
- Simplifying tags to
@api @ui- Using past tense for action steps ("I removed product")
- Adding an explicit verification step before assertions
This creates a clearer separation between actions and verifications, making the test more readable and maintainable.
Also applies to: 19-20
24-24: Consistent test pattern applicationThe same pattern improvements have been applied to this scenario, maintaining consistency throughout the feature file. The explicit "check the details of my cart" step creates a clear boundary between modification actions and assertions.
Also applies to: 28-29
features/shop/account/customer_account/address_book/viewing_addresses_created_after_checkout.feature (1)
16-21: Enhanced readability with higher-level stepsThe scenario has been improved by:
- Simplifying tags to
@api @ui- Using more abstract, business-focused steps instead of granular implementation details
Using composite steps like "I addressed the cart" and "I chose shipping and payment methods" makes the test more readable and resilient to UI implementation changes while preserving the business intent.
features/shop/taxation/applying_taxes_based_on_order_item_units_calculation_strategy/applying_correct_taxes_for_item_units_with_the_same_tax_rate.feature (2)
40-40: Standardized test structure patternThis scenario follows the same improvement pattern as other feature files, with simplified tags and a clearer separation between actions and verifications. The explicit cart details check provides a consistent verification point before assertions.
Also applies to: 44-44
49-49: Consistent structure for better maintainabilityThe same standardized pattern is applied to this scenario, ensuring consistency across all tax calculation test cases. This makes the test suite more maintainable and easier to understand for developers.
Also applies to: 53-54
src/Sylius/Behat/Context/Ui/Admin/ManagingCustomersContext.php (2)
17-17: Updated import for PHP 8 attributesUpdated the import to use
Behat\Step\Whenfor PHP 8 attributes instead of the previous annotation-based approach.
379-380: Modernized step definition with PHP 8 attributesConverted the PHPDoc annotation to a PHP 8 attribute and added an explicit void return type. This change:
- Makes the code more concise and readable
- Leverages native PHP 8 language features
- Improves type safety with explicit return types
- Aligns with modern PHP development practices
This is part of a broader modernization effort across the codebase.
src/Sylius/Behat/Context/Ui/Shop/Checkout/RegistrationAfterCheckoutContext.php (2)
17-17: Import added for PHP 8 attribute syntaxThe new import
use Behat\Step\When;is added to support the PHP 8 attribute-based step definition that replaces the PHPDoc annotation style.
45-49:Details
✅ Verification successful
Updated to PHP 8 attribute syntax for Behat step definition
The step definition has been modernized from PHPDoc
@Whenannotation to PHP 8 attribute syntax#[When]. Additionally, the wording changed from "I specify the password as :password" to "I specify a password as :password". Note that the method no longer stores the password in shared storage, which aligns with centralized secure password handling usingSecurePasswordTraitthroughout the codebase.
🏁 Script executed:
#!/bin/bash # Verify if this class uses SecurePasswordTrait or if password handling has been moved elsewhere # Check if this class or other related registration contexts use SecurePasswordTrait rg -A 2 "use.*SecurePasswordTrait" --type php src/Sylius/Behat/ # Check where password storage might have been moved rg -A 5 "specifyPassword.*password" --type php src/Sylius/Behat/Element/Length of output: 13827
Registration step modernized with PHP 8 attribute and centralized secure password handling
- Replaced PHPDoc
@Whenannotation with#[When('I specify a password as :password')]in
src/Sylius/Behat/Context/Ui/Shop/Checkout/RegistrationAfterCheckoutContext.php- Updated the step wording from “I specify the password as :password” to “I specify a password as :password” for consistency
- Removed manual shared‑storage writes—passwords are now passed through
src/Sylius/Behat/Element/Shop/Account/RegisterElement.php’s
specifyPassword()method, which invokesreplaceWithSecurePassword()fromSecurePasswordTraitto centralize secure handlingAll changes align with the existing secure‑password pattern across Behat contexts and elements.
src/Sylius/Behat/Resources/config/services/elements/admin.xml (1)
85-87: Added shared storage injection for secure password handlingThe service definition for
sylius.behat.element.admin.customer.formnow injects thesylius.behat.shared_storageservice as a constructor argument. This change supports the use of theSecurePasswordTraitfor secure password handling in Behat tests.features/shop/inventory/cart_inventory/e2e/prevent_buying_more_products_than_available_in_a_stock.feature (3)
2-2: Simplified feature titleThe feature title has been reworded to be more concise while maintaining clarity about preventing purchases that exceed available stock.
17-17: Simplified assertion stepThe step has been simplified to focus only on the notification about insufficient stock, removing the verification that the user remains on the product page. This change streamlines the test to focus on the core assertion.
21-21: Changed step phrasing for consistencyChanged from "When I add" to "Given I added" to use past tense for setup steps, making a clearer distinction between setup and action phases in the scenario. This follows a broader pattern of standardizing step definitions across the codebase.
features/shop/promotion/applying_promotion_rules/receiving_discount_based_on_nth_order_for_guest_customer.feature (2)
23-23: Removed @javascript tag from scenarioThe
@javascripttag has been removed from this scenario, indicating it no longer requires JavaScript for execution. This simplifies test execution while maintaining the API and UI contexts.
30-32: Simplified and reordered test stepsThe steps have been simplified and standardized to:
- Use past tense for setup steps ("I added product" instead of "I add product")
- Use more concise steps ("I addressed the cart" replacing multiple steps)
- Explicitly separate the cart details check after addressing
This improves readability and aligns with standardized step definitions across the codebase.
features/shop/cart/shopping_cart/adding_product_with_discounted_catalog_price_to_cart.feature (2)
13-20: Consistent test approach with improved step clarityThe test has been improved by:
- Removing the
@javascripttag in favor of more specific@api @uitags- Changing step phrasing from present to past tense ("I added product" instead of "I add product")
- Adding an explicit "When I check the details of my cart" step to clearly separate cart modification from cart verification
This follows modern BDD best practices by clearly distinguishing between the setup phase (Given/And), action phase (When), and assertion phase (Then/And).
22-31: Consistent scenario structure across feature filesThe same improvements have been applied to this scenario, making it consistent with the previous one. The change from present to past tense verbs and the explicit "check the details" step makes the test flow more logical and easier to understand.
features/shop/cart/shopping_cart/adding_products_with_quantity_to_cart.feature (1)
11-16: Improved test structure and consistent approachThe changes align with the standardization seen across other feature files:
- Removing
@javascripttag in favor of@api @uitags- Using past tense for action steps to indicate "Given" state vs. "When" actions
- Adding explicit "When I check the details of my cart" step before assertions
This creates a clearer separation between test phases and improves readability.
features/shop/shipping/viewing_shipping_methods/viewing_available_shipping_methods_based_on_channel_as_a_visitor.feature (2)
18-25: Standardized test structure with improved step descriptionsThe test has been refined to:
- Remove the
@javascripttag to focus on@api @uitesting- Use past tense for action steps ("I added product")
- Simplify the addressing step
- Add a clear step for the shipping phase transition ("When I want to complete the shipping step")
These changes align with similar improvements across other feature files and make the test flow more logical.
27-34: Consistent structure applied to the second scenarioThe same improvements have been applied to this scenario, maintaining consistency across the feature file. The changes follow the same patterns of standardization and clarification.
features/shop/inventory/cart_inventory/e2e/ui/prevent_buying_more_products_than_available_in_a_stock.feature (2)
1-12: Well-structured new inventory test featureThis new feature file follows proper BDD structure with:
- Clear feature description focusing on inventory constraint enforcement
- Well-defined user story ("In order to...", "As a...", "I want to...")
- Appropriate background setup with product and inventory configuration
The tags
@cart_inventorycategorize this properly within the test suite.
13-17: Properly tagged JavaScript-dependent scenarioUnlike other files where
@javascripttags were removed, this scenario specifically includes the@javascripttag along with@no-api @ui. This indicates that the test specifically requires JavaScript functionality to run, which makes sense for an inventory check that likely involves dynamic UI updates.The scenario steps are well-defined with clear assertions to verify that:
- Adding products below the inventory threshold works
- No insufficient stock notification appears
- The user stays on the cart summary page
This provides adequate test coverage for this inventory constraint.
features/shop/checkout/seeing_order_summary/seeing_addresses_on_order_summary_page.feature (1)
24-31: Excellent refactoring to streamline the test steps!The changes to this scenario simplify the test by using higher-level, composite steps that make the scenario more readable while testing the same functionality. The use of steps like "I addressed the cart with..." and "I chose... shipping method and... payment method" encapsulates multiple actions into logical groups, making the test more maintainable and focused on business requirements rather than implementation details.
src/Sylius/Behat/Page/Admin/Administrator/FormAwareTrait.php (2)
16-17: Good integration of SecurePasswordTraitAdding the SecurePasswordTrait integration provides a consistent approach to password handling across the test suite.
Also applies to: 20-21
64-64: Enhanced security for password handling in testsUsing the replaceWithSecurePassword method improves security during testing by replacing actual passwords with secure random ones while maintaining the original passwords in shared storage for reference.
features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_usage_limit.feature (2)
16-16: Good standardization of scenario tagsRemoving the
@mink:chromedrivertags while keeping@api @uitags helps standardize the testing approach across different scenarios and aligns with the rest of the test suite.Also applies to: 25-25, 34-34, 47-47
20-20: Consistent coupon application stepsUsing the same phrasing for coupon application across all scenarios improves consistency and readability of the test suite.
Also applies to: 29-29, 42-42, 56-56
src/Sylius/Behat/Resources/config/suites/ui/inventory/checkout_inventory.yml (1)
21-25: Improved modularity with additional checkout contextsAdding separate context classes for cart, address, payment, and shipping setup enhances the modularity of the test suite. This separation of concerns allows for more focused and maintainable test contexts, making it easier to set up specific checkout scenarios.
features/shop/inventory/cart_inventory/verify_inventory_quantity_when_updating_cart_summary.feature (1)
16-21: Test scenario structure improved for clarity and consistencyThe scenario structure has been improved by:
- Simplifying tags to only use
@api @uiinstead of including browser-specific tags- Using past tense in step definitions ("I changed" instead of "I change")
- Adding explicit verification steps to check cart details and product quantity
This change follows modern Behat best practices by clearly separating actions from assertions.
src/Sylius/Behat/Resources/config/suites/api/inventory/checkout_inventory.yaml (1)
21-25: Enhanced test context configuration for comprehensive checkout testingThe addition of these setup contexts (cart, checkout.address, checkout.payment, checkout.shipping) provides more comprehensive test coverage for the checkout inventory API suite by ensuring all necessary checkout components are properly configured before test execution.
These additions align with the modular approach to checkout testing that's being implemented across the Sylius test infrastructure.
src/Sylius/Behat/Page/Shop/Checkout/AddressPage.php (4)
20-24: Added secure password handling infrastructureAdded imports for the
SecurePasswordTraitandSharedStorageInterfaceto implement more secure password handling in tests.
32-33: Implemented SecurePasswordTrait for enhanced securityThe
SecurePasswordTraitimplementation helps centralize password handling logic and provides more secure password management during tests.
43-44: Added SharedStorageInterface dependency for secure password handlingThe constructor now includes
SharedStorageInterfaceas a protected property, which is required by theSecurePasswordTraitto store and retrieve secure passwords between test steps.
181-181: Enhanced password security in specifyPassword methodModified the
specifyPasswordmethod to use theretrieveSecurePasswordmethod from the trait instead of directly setting the raw password value. This improves security by using the trait's mechanism to substitute and retrieve secure passwords from shared storage.features/shop/promotion/applying_promotion_coupon/receiving_no_discount_if_coupon_promotion_is_not_eligible.feature (2)
16-16: Simplified scenario tags for better maintainabilityRemoved browser-specific tags (likely
@mink:chromedriver) in favor of the more generic@api @uitags. This simplifies the test configuration and makes it easier to run these tests across different environments without being tied to a specific browser implementation.Also applies to: 25-25, 34-34, 43-43, 53-53
20-20: Standardized step definitions and improved verification clarityThe test steps have been updated to use a consistent format:
- "I applied the coupon with code" instead of different variations
- Added explicit "When I check the details of my cart" steps to separate actions from verifications
- Made verification steps clearer with explicit "Then" statements
These changes follow Behat best practices by clearly distinguishing between actions, events, and assertions while maintaining a consistent vocabulary across scenarios.
Also applies to: 29-30, 38-40, 48-50, 56-57
src/Sylius/Behat/Context/Setup/AdminUserContext.php (3)
18-18: New dependency added for SecurePasswordTraitAdding the SecurePasswordTrait import is consistent with the broader refactoring to improve secure password handling across Behat contexts.
30-31: Implementing SecurePasswordTraitThe trait addition enables secure password management within this context class, aligning with the standardized approach for user-related contexts.
53-54: Enhancing password security in admin user creationThe implementation now properly processes the password through the
replaceWithSecurePasswordmethod, ensuring consistent secure password handling when creating administrator users.src/Sylius/Behat/Page/Shop/Account/LoginPage.php (4)
16-22: Added required imports for secure password handlingThe added imports support the new secure password functionality and constructor dependency injection.
26-27: Implementing SecurePasswordTraitAdding this trait provides access to secure password handling methods, consistent with the pattern applied across the codebase.
28-37: Added constructor with proper dependency injectionThe constructor properly injects all required dependencies including SharedStorageInterface, which is needed for the SecurePasswordTrait functionality.
57-57: Enhanced password handling securityModified to use the
retrieveSecurePasswordmethod from the trait instead of directly using the raw password, improving security in test scenarios.src/Sylius/Behat/Context/Setup/PromotionContext.php (4)
20-20: Added UpdateCart command importThis import supports the new functionality for applying coupon codes via command bus.
41-41: Added MessageBusInterface importRequired for dispatching commands through the message bus system.
60-61: Injected MessageBusInterface dependencyProper dependency injection of the command bus enables dispatching commands from this context.
77-84: Added method to apply coupon codes via command busThis new method properly implements the "I applied the coupon with code" step definition using the command bus architecture, which aligns with the application's messaging approach for cart operations.
src/Sylius/Behat/Page/Admin/Administrator/CreatePage.php (2)
16-19: Added required imports for dependency injectionThese imports support the new constructor and dependency injection pattern.
25-34: Added constructor with SharedStorageInterface dependencyThe constructor properly injects the SharedStorageInterface and other dependencies required for the page functionality. This supports the secure password handling pattern implemented across the codebase.
src/Sylius/Behat/Context/Api/Admin/ManagingCustomersContext.php (1)
21-21: Good security enhancement for password handling in tests.The integration of the
SecurePasswordTraitand its usage in theiSpecifyItsPasswordAsmethod improves security by replacing actual passwords with randomly generated ones during tests. This prevents hardcoded passwords from being exposed in test code while maintaining test functionality.Also applies to: 31-31, 148-148
src/Sylius/Behat/Element/Shop/Account/RegisterElementInterface.php (1)
28-28: Improved type safety for password methods.The parameter types for
specifyPasswordandverifyPasswordhave been updated from nullable strings (?string) to non-nullable strings (string). This change aligns with secure password handling requirements and makes the interface contract more explicit about requiring non-null password values.Also applies to: 32-32
src/Sylius/Behat/Resources/config/services/pages/admin/account.xml (1)
22-24: Properly injected shared storage for secure password handling.The
sylius.behat.shared_storageservice has been injected into both login and reset password page services, enabling them to utilize the secure password handling functionality. This is a necessary change to support the newSecurePasswordTraitimplementation across the Behat testing framework.Also applies to: 28-30
src/Sylius/Behat/Service/Factory/AddressFactory.php (3)
34-34: Default province added to address creation.Setting "Arkansas" as the default province name ensures consistent address creation in tests where province information is required.
55-61: Helpful new method for province customization.The
createDefaultWithProvinceNamemethod provides a convenient way to create addresses with specific province names while maintaining all other default values, improving test flexibility.
63-70: Useful addition for name customization in test addresses.The
createDefaultWithFirstAndLastNamemethod enables easy customization of customer names in test addresses without having to modify other address properties, enhancing test readability and maintainability.features/shop/taxation/applying_taxes/applying_correct_taxes_for_items_with_the_same_tax_rate.feature (2)
39-46: Improved scenario flow with better sequencingThe reworked scenario now correctly places the step for removing the product before checking the cart details. This logical flow ensures that the cart state is properly updated before assertions are made, improving test reliability.
48-55: Logical step reordering improves test flowThe scenario now follows a clear pattern: first modify the cart (changing quantity), then explicitly check cart details, and finally assert the expected totals. This structure is more maintainable and consistent with other scenarios in the file.
src/Sylius/Behat/Context/Api/Shop/LoginContext.php (4)
24-24: Enhanced security with SecurePasswordTrait integrationAdding the SecurePasswordTrait implements a more secure approach to password handling in tests, avoiding hardcoded credentials and potential security issues.
Also applies to: 37-37
71-71: Secure password retrieval implementationChanged the hard-coded password to use the secure password retrieval mechanism, which properly handles password storage and access during test execution.
150-150: Enhanced password security for password resetUpdated password handling in the password reset flow to use secure password replacement, improving test security and consistency with other contexts.
159-159: Consistent password confirmation handlingPassword confirmation now consistently uses the secure password confirmation method, ensuring that confirmation logic matches the password replacement used earlier in the flow.
features/shop/cart/shopping_cart/adding_product_to_cart_with_prices_dependent_on_channel.feature (2)
18-23: Improved scenario structure with explicit cart checkThe scenario now follows a clearer test pattern by:
- Using past tense for actions (changed channel, added product)
- Adding an explicit step to check cart details before assertions
- Simplifying tags to focus on testing contexts rather than browser implementations
This makes the test more readable and maintainable.
25-30: Consistent scenario format with explicit verification stepThe scenario has been updated to match the same pattern as the previous one, maintaining consistency throughout the feature file and improving test clarity by explicitly checking cart details before making assertions.
features/shop/promotion/applying_promotion_coupon/applying_promotion_coupon_with_per_customer_usage_limit.feature (5)
18-24: Standardized coupon application wordingUpdated step wording from "I use coupon" to "I applied the coupon" for consistency with other coupon-related steps throughout the codebase. This standardization improves readability and maintainability.
26-36: Consistent coupon application terminologyStandardized to "I applied the coupon" phrasing, which aligns with the past tense convention used throughout the test suite and improves consistency in the coupon application flow.
38-48: Standardized scenario structure for failed coupon applicationThe scenario has been updated to use consistent terminology and a clear flow: applying the coupon, checking the cart, and then verifying that no discount was applied. This makes the test easier to understand and maintain.
50-61: Improved readability with standardized step phrasingThe scenario follows the consistent pattern established throughout the feature file with standardized coupon application wording and proper flow of actions before assertions.
63-75: Consistent approach to cancelled orders affecting coupon usageThe scenario maintains the same improved structure as other scenarios in this feature, with standardized step phrasing for coupon application and consistent assertion flow for verifying that no discount is applied.
src/Sylius/Behat/Page/Shop/Product/ShowPage.php (1)
264-271: Improved error handling for missing images.The change enhances image verification by throwing an exception when a 404 is encountered rather than silently returning false. This makes debugging easier as it provides clear error information with the specific image URL in the exception message.
This aligns well with the
ignore_not_found: trueconfiguration added in the UX icons bundle, showing a consistent approach to error handling across the codebase.features/shop/checkout/seeing_order_summary/seeing_addresses_on_order_summary_page_when_shipping_is_required_one_in_checkout.feature (2)
17-21: LGTM! Improved scenario readability with higher-level steps.The consolidated steps make the scenario more concise and focused on business logic rather than implementation details.
23-30: Improved consistency by removing @mink:chromedriver tag and using higher-level steps.The refactored steps align with the first scenario and improve maintainability by using the same higher-level step definitions. Removing the @mink:chromedriver tag also helps with test consistency.
src/Sylius/Behat/Context/Setup/UserContext.php (4)
18-30: LGTM! Added SecurePasswordTrait for enhanced password handling.The SecurePasswordTrait integration implements a more secure approach to handling passwords in test contexts.
49-49: Enhanced password security in user creation.Using
replaceWithSecurePasswordprevents hardcoded passwords from being exposed in test scenarios.
63-63: Enhanced password security in customer account creation.Using
replaceWithSecurePasswordensures consistent secure password handling across the test suite.
188-195: Comprehensive password security in change password flow.The implementation properly handles all aspects of the password change flow:
- Retrieves the current password securely
- Replaces the new password with a secure version
- Confirms the new password to ensure consistency
This approach maintains test integrity while enhancing security.
src/Sylius/Behat/Context/Api/Admin/ManagingAdministratorsContext.php (2)
21-34: LGTM! Added SecurePasswordTrait for enhanced password handling.Consistent with other contexts, the SecurePasswordTrait integration implements a more secure approach to handling passwords in admin test contexts.
112-112: Enhanced password security in API requests.Using
replaceWithSecurePasswordensures that actual passwords aren't exposed in API request data during tests.src/Sylius/Behat/Page/Admin/Account/LoginPage.php (4)
16-20: Appropriate imports for new dependencies.The new imports match the requirements for the class changes, including the
SecurePasswordTraitand dependencies for the constructor.
24-24: Good implementation of secure password handling.Adding the
SecurePasswordTraitcentralizes password handling logic, ensuring consistent secure behavior across tests.
26-33: Constructor properly initializes dependencies.The constructor correctly injects and initializes all required dependencies, including the new
SharedStorageInterfaceparameter needed for theSecurePasswordTrait.
47-47: Enhanced security for password handling.Replacing direct password usage with
retrieveSecurePasswordensures passwords are handled securely during testing.features/shop/cart/shopping_cart/e2e/ui/adding_product_to_cart_with_prices_dependent_on_channel.feature (1)
1-25: Well-designed test for multi-channel pricing functionality.This feature file effectively tests important aspects of multi-channel and multi-currency support:
- Channel-specific product pricing
- Currency conversion using exchange rates
- Correct price display in cart after currency changes
The scenario provides good coverage for verifying that prices are correctly handled when customers switch between currencies, which is essential for international stores.
features/shop/inventory/cart_inventory/e2e/verify_inventory_quantity_when_updating_cart_summary.feature (1)
1-22: Good test for inventory constraints during cart updates.This feature file correctly tests that users cannot add more products to their cart than are available in inventory, which is an essential e-commerce constraint.
Note that this feature has both
@apiand@uitags. While this allows testing both interfaces, consider whether separate API and UI feature files would be more appropriate for maintainability, especially since there's a UI-specific version of this test in another file.features/shop/inventory/cart_inventory/e2e/ui/verify_inventory_quantity_when_updating_cart_summary.feature (1)
1-27: Excellent comprehensive test for cart inventory constraints.This feature file provides thorough testing of cart behavior when updating quantities beyond inventory limits:
- Tests updating multiple products simultaneously
- Verifies error notifications for insufficient stock
- Confirms that valid quantity changes are still applied
- Ensures the cart total is calculated correctly
The scenario effectively tests the complex interaction between inventory constraints and cart functionality, providing valuable regression protection.
src/Sylius/Bundle/ApiBundle/Assigner/OrderPromotionCodeAssigner.php (3)
23-23: Improved type clarity with PHPDoc annotationThe addition of the PHPDoc annotation for the repository property with a generic type improves code readability and IDE type inference.
32-38: Good refactoring of coupon retrieval logicThis refactoring improves the code by:
- Simplifying the logic with inline coupon retrieval
- Explicitly handling the case when a coupon code is provided but not found
- Returning the cart unchanged when an invalid coupon is provided (instead of potentially throwing an exception)
This approach is more maintainable and handles edge cases more gracefully.
40-40: Simplified coupon assignmentConsolidating the coupon assignment into a single line makes the code more concise and easier to understand.
src/Sylius/Behat/Context/Api/Admin/ResettingPasswordContext.php (5)
17-23: Added required imports for secure password handlingThe new imports support the integration of the SecurePasswordTrait and shared storage functionality.
31-31: Integration of SecurePasswordTraitUsing the SecurePasswordTrait centralizes secure password handling logic and improves test security.
39-39: Added SharedStorageInterface dependencyThe addition of SharedStorageInterface as a constructor dependency is required for the SecurePasswordTrait functionality.
87-87: Updated password specification to use secure handlingThe method now uses the trait's replaceWithSecurePassword method, which securely stores and replaces the original password.
96-96: Updated password confirmation to use secure handlingThe method now uses the trait's confirmSecurePassword method, ensuring consistent password management throughout tests.
src/Sylius/Behat/Element/Admin/Customer/FormElement.php (4)
17-24: Added required imports for secure password handlingThe new imports support the integration of the SecurePasswordTrait, Session, and shared storage functionality.
28-28: Integration of SecurePasswordTraitUsing the SecurePasswordTrait centralizes secure password handling logic and improves test security.
32-38: Added constructor to support SharedStorageInterfaceThe new constructor properly injects the SharedStorageInterface dependency needed by the SecurePasswordTrait, while maintaining compatibility with the parent class constructor.
105-105: Updated password specification to use secure handlingThe method now uses the trait's replaceWithSecurePassword method, which securely stores and replaces the original password, improving test security.
src/Sylius/Behat/Page/Admin/Account/ResetPasswordPage.php (5)
17-21: Added required imports for secure password handlingThe new imports support the integration of the SecurePasswordTrait, Session, RouterInterface and shared storage functionality.
25-25: Integration of SecurePasswordTraitUsing the SecurePasswordTrait centralizes secure password handling logic and improves test security.
27-34: Added constructor to support SharedStorageInterfaceThe new constructor properly injects the SharedStorageInterface dependency needed by the SecurePasswordTrait, while maintaining compatibility with the parent class constructor by passing all required dependencies.
38-38: Updated new password specification to use secure handlingThe method now uses the trait's replaceWithSecurePassword method, which securely stores and replaces the original password.
43-43: Updated password confirmation to use secure handlingThe method now uses the trait's confirmSecurePassword method, ensuring consistent password management throughout tests.
src/Sylius/Behat/Context/Ui/Shop/Checkout/CheckoutThankYouContext.php (2)
17-17: Added PHP 8 attribute support.The import of
Behat\Step\Thenhas been added to enable PHP 8 attribute-based step definitions, which is part of a broader modernization effort across the codebase.
82-83: Step definition updated to use PHP 8 attributes.The method
iShouldNotSeeTheThankYouPage()has been updated to use PHP 8 attribute syntax, which is consistent with the modernization of Behat contexts across the codebase.features/shop/cart/shopping_cart/adding_product_to_cart.feature (4)
12-12: Tags updated to support API and UI tests.The
@javascripttag has been removed and replaced with@api @uito enable testing in both API and UI contexts. This is part of a broader effort to standardize test suites.
16-18: Step definitions improved for clarity and consistency.Steps have been split and reworded to use past tense ("I added" instead of "I add") and to explicitly separate the product addition from checking cart contents. This improves test readability and helps isolate the cause of failures.
31-31: Tags updated to support API and UI tests.Similar to the previous scenario, the
@javascripttag has been removed and replaced with@api @uito enable testing in both API and UI contexts.
35-37: Steps separated for improved test clarity.Steps have been reworded to use past tense and split into separate actions: adding the product again and then explicitly checking cart details. This provides better visibility into the test flow and makes failure points clearer.
src/Sylius/Behat/Context/Api/Shop/RegistrationContext.php (3)
21-21: Security enhancement: Added SecurePasswordTrait.The
SecurePasswordTraithas been integrated to improve password security in tests by replacing plain text passwords with secure random values.Also applies to: 29-30
93-93: Implemented secure password handling.Original passwords are now replaced with secure random passwords during testing, which is a security best practice. The trait stores both the original and secure passwords in shared storage for validation purposes.
296-296: Consistent secure password implementation.The
fillContentmethod now also uses the secure password handling mechanism, ensuring consistent password management throughout the registration process.src/Sylius/Behat/Context/Setup/PaymentContext.php (4)
17-17: Updated imports for PHP 8 attribute support.Added the
Behat\Step\Givenimport to support PHP 8 attribute-based step definitions, consistent with the codebase modernization effort.
47-49: Converted to PHP 8 attributes for step definitions.Step definitions have been updated from docblock annotations to modern PHP 8 attributes, improving code clarity and maintainability.
51-51: Simplified payment method code generation.Removed the redundant 'PM_' prefix from payment method code generation, now using only the inflected name code. This simplifies the code and makes the generated codes more consistent with other naming patterns in the system.
104-104: Converted to PHP 8 attributes for step definition.Updated the
thisPaymentMethodIsNotUsingPayummethod to use PHP 8 attributes instead of docblock annotations, consistent with other modernization changes.src/Sylius/Behat/Page/Shop/Account/ResetPasswordPage.php (5)
17-21: Good addition of necessary imports for secure password handling.The imports add support for the
SecurePasswordTraitandSharedStorageInterfacewhich are required for the secure password implementation.
25-25: Appropriate use of SecurePasswordTrait for secure password handling.The trait provides methods for securely handling passwords during testing, which is a good security practice.
27-35: Well-structured constructor for dependency injection.The constructor properly injects the required dependencies including the Session, minkParameters, router, and SharedStorageInterface which is needed by the SecurePasswordTrait.
49-49: Enhanced password security using trait method.The implementation now uses
replaceWithSecurePasswordto handle passwords more securely during tests rather than setting raw values directly.
54-54: Improved password confirmation security.Using
confirmSecurePasswordensures that the confirmation password is handled consistently with the original password while maintaining security during tests.src/Sylius/Behat/Context/Api/Shop/CustomerContext.php (3)
22-22: Good addition of SecurePasswordTrait for consistent password handling.Adding the SecurePasswordTrait allows for consistent and secure password handling across the testing framework.
Also applies to: 32-32
154-157: Enhanced security in password change implementation.The implementation now securely handles passwords:
- Uses
retrieveSecurePasswordfor the current password- Uses
replaceWithSecurePasswordfor the new password- Uses
confirmSecurePasswordfor confirming the new passwordThis ensures consistent and secure password handling during API tests.
561-561: Improved security for account registration password.Now using
replaceWithSecurePasswordto handle the password securely during account registration tests.src/Sylius/Behat/Resources/config/services/pages/shop/account.xml (3)
39-41: Proper dependency injection for change_password page.The service now correctly receives the shared storage service needed by the SecurePasswordTrait.
43-46: Proper dependency injection for login page.The service definition now includes both the table accessor and shared storage services, supporting both table operations and secure password handling.
57-59: Proper dependency injection for reset_password page.The service now correctly receives the shared storage service needed by the SecurePasswordTrait implementation.
src/Sylius/Behat/Element/Shop/Account/RegisterElement.php (5)
18-22: Good addition of necessary imports for secure password handling.The imports add support for the
SecurePasswordTraitand other required dependencies.
26-26: Appropriate use of SecurePasswordTrait for secure password handling.The trait provides methods for securely handling passwords during testing, which is a good security practice.
28-35: Well-structured constructor for dependency injection.The constructor properly injects the required dependencies including the Session, minkParameters, and SharedStorageInterface which is needed by the SecurePasswordTrait.
67-71: Enhanced security and improved method signature for password handling.The method now:
- Uses a non-nullable string parameter, improving type safety
- Implements
replaceWithSecurePasswordfor secure password handling during testsThis change improves both security and code reliability.
79-83: Enhanced security and improved method signature for password verification.The method now:
- Uses a non-nullable string parameter, improving type safety
- Implements
confirmSecurePasswordfor secure password confirmation during testsThis change ensures password verification is handled consistently with the initial password setting.
src/Sylius/Behat/Context/Cli/ChangeAdminPasswordContext.php (5)
17-18: Good addition of required dependencies.The import statements for
SecurePasswordTraitandSharedStorageInterfaceare necessary to support the secure password handling functionality being integrated.
29-29: Appropriate use of the SecurePasswordTrait.Adding the trait properly integrates the secure password handling functionality into this context.
45-45: Necessary dependency injection.Adding the
SharedStorageInterfaceas a readonly dependency is required for theSecurePasswordTraitto function properly, as it relies on shared storage to manage secure passwords.
73-73: Good implementation of secure password handling.Replacing direct password assignment with
replaceWithSecurePassword()enhances security by generating and storing a random password instead of using the literal test password value.
100-100: Correctly retrieves the secure password.The
retrieveSecurePassword()method properly retrieves the secure password that was stored earlier, maintaining the expected test behavior while using more secure values.src/Sylius/Behat/Context/Ui/Shop/RegistrationContext.php (5)
17-17: Added required import for PHP 8 attributes.The import of
Behat\Step\Whenis necessary for supporting the new PHP 8 attribute-based step definitions.
97-101: Updated to PHP 8 attribute syntax.Good modernization by replacing DocBlock annotations with PHP 8 attributes for step definitions. The method now uses a dedicated signature with a non-nullable
stringparameter for better type safety.
103-107: Split functionality into a dedicated method.Excellent refactoring to create a separate method for the case when no password is specified. This improves code clarity and provides explicit handling for this scenario.
117-117: Updated to PHP 8 attribute syntax.Properly modernized the step definition using PHP 8 attributes instead of DocBlock annotations.
120-120: Improved empty password handling.Changed to use an empty string instead of null, which is more consistent with the split method approach used earlier and ensures predictable behavior.
src/Sylius/Behat/Page/Shop/Account/ChangePasswordPage.php (6)
17-21: Added necessary imports for secure password handling.The addition of
Session,SecurePasswordTrait, andSharedStorageInterfaceimports properly supports the integration of secure password handling in this page object.
25-25: Appropriate use of SecurePasswordTrait.Including the trait enables the page to use secure password handling methods consistently with other classes in the system.
27-34: Well-structured constructor for dependency injection.The constructor properly injects the required dependencies, including
SharedStorageInterfacewhich is needed by theSecurePasswordTrait. Using theprotectedaccess modifier for the shared storage property allows potential subclasses to access it.
54-54: Proper use of retrieveSecurePassword for current password.The method now uses
retrieveSecurePassword()to retrieve the securely stored password, which is appropriate for input fields that expect an existing password.
59-59: Good implementation of replaceWithSecurePassword for new password.Using
replaceWithSecurePassword()for the new password field properly secures this sensitive value during testing.
64-64: Appropriately using confirmSecurePassword for confirmation field.The use of
confirmSecurePassword()ensures that the confirmation field receives the same secure password that was generated for the new password field, maintaining the expected behavior.src/Sylius/Behat/Context/Setup/Checkout/ShippingContext.php (3)
25-32: Well-designed class with appropriate modifiers.The class is correctly marked as
final readonlyand implements the BehatContextinterface. The constructor properly injects the required dependencies (SharedStorageInterfaceandMessageBusInterface) using constructor property promotion for cleaner code.
33-39: Clear and concise step definitions using PHP 8 attributes.The step definitions use modern PHP 8 attributes and provide multiple variations for different actors (user, customer, visitor), which improves test readability and flexibility.
41-54: Well-implemented method for choosing shipping methods.The
chooseShippingMethodmethod:
- Retrieves the order from shared storage
- Gets the shipping method code (either from the provided method or from shared storage)
- Dispatches a
ChooseShippingMethodcommand with the necessary informationThis implementation adheres to the command pattern and properly handles the case where a shipping method is not explicitly provided.
src/Sylius/Behat/Context/Api/Shop/CheckoutContext.php (9)
17-17: Well-organized imports for the new functionality.The new imports have been added for the refactored functionality, following the proper namespace organization. The addition of
CheckoutShippingContextandAddressFactoryInterfacealigns with the service-oriented approach.Also applies to: 24-26
66-67: Good dependency injection pattern.The constructor has been properly updated to inject the new
CheckoutShippingContextservice andAddressFactoryInterface, which improves separation of concerns by delegating shipping method selection to a dedicated service.Also applies to: 73-73
112-116: Clear documentation of UI-specific placeholder.This new method provides a clean way to handle UI-specific steps in the API context by explicitly marking the implementation as intentionally empty with a clear comment.
118-118: Modernized step definitions with PHP 8 attributes.The conversion from PHPDoc annotations to PHP 8 attributes improves code readability and leverages the native language features for Behat step definitions.
Also applies to: 236-238, 455-456, 507-508, 652-652, 911-911, 1128-1128, 1254-1254
151-151: Properly delegated shipping method selection.The implementation now correctly delegates shipping method selection to the specialized
CheckoutShippingContextservice, which aligns with the single responsibility principle.Also applies to: 572-573, 586-586
238-240: Improved method flexibility with optional parameter.The
iSpecifyTheBillingAddressAsmethod now accepts an optionalAddressInterfaceparameter and uses the address factory as a fallback, making the method more flexible while maintaining backward compatibility.
519-522: Standardized response checker usage.The code now consistently uses
isViolationWithMessageInResponsefor checking API response violations, which improves code consistency and readability.Also applies to: 659-665, 1090-1092, 1111-1114, 1122-1125, 1162-1168
533-536: Improved error handling logic.The error handling code has been simplified to directly check the response status code and content, making it more straightforward to understand the expected error response.
836-841: Clear assertion for shipping step failure.The method
iShouldNotBeAbleToProceedCheckoutShippingStepnow checks both the checkout state and empty shipments, providing a comprehensive verification of the failure condition.
| #[Then('my order should be completed successfully')] | ||
| public function iShouldSeeTheThankYouPage(): void |
There was a problem hiding this comment.
💡 Verification agent
🧩 Analysis chain
Step definition updated to use PHP 8 attributes with changed wording.
The method iShouldSeeTheThankYouPage() has been updated to use PHP 8 attribute syntax with a single pattern my order should be completed successfully instead of the previous multiple docblock annotations. The wording change aligns with similar changes in the API shop context.
Please verify that all feature files using the previous patterns (I should see the thank you page, the visitor should see the thank you page, the customer should see the thank you page) have been updated to use the new pattern:
🏁 Script executed:
#!/bin/bash
# Search for any feature files still using the old thank you page patterns
rg -t feature "I should see the thank you page" --iglob "features/**"
rg -t feature "the visitor should see the thank you page" --iglob "features/**"
rg -t feature "the customer should see the thank you page" --iglob "features/**"Length of output: 332
To correctly search all .feature files for the old thank-you step patterns, let’s re-run using file globbing instead of -t feature:
🏁 Script executed:
#!/bin/bash
# Search for old thank-you step patterns in .feature files
rg -n "I should see the thank you page" --glob "features/**/*.feature"
rg -n "the visitor should see the thank you page" --glob "features/**/*.feature"
rg -n "the customer should see the thank you page" --glob "features/**/*.feature"Length of output: 3120
Feature files still use old thank‑you step wording – please update them
The new PHP‑8 attribute in CheckoutThankYouContext::iShouldSeeTheThankYouPage() expects the step
Then my order should be completed successfully
but these feature files still use one of the old patterns. Please replace every occurrence of:
• Then I should see the thank you page
• Then the visitor should see the thank you page
• Then the customer should see the thank you page
with the new step.
Affected files and lines:
- features/shop/checkout/ability_to_confirm_an_order_with_a_promotion_on_shipping.feature:24
- features/shop/checkout/placing_an_order_after_moving_back_in_checkout.feature:21, 30, 39
- features/shop/checkout/not_seeing_payment_method_instructions_on_thank_you_page_if_order_total_is_zero.feature:21
- features/shop/checkout/having_registration_account_form_prefilled_after_checkout.feature:19, 30
- features/shop/checkout/paying_for_order/paying_offline_during_checkout.feature:22, 31
- features/shop/checkout/order_promotion/order_promotion_integrity_validation.feature:37, 48, 66, 77
- features/shop/checkout/paying_for_order/paying_offline_during_checkout_as_guest.feature:22, 31, 39, 46
- features/shop/checkout/ability_to_checkout_as_guest_with_a_registered_email.feature:22, 32
- features/shop/cart/shopping_cart/allowing_access_only_for_correctly_logged_in_users.feature:53 (“visitor”), 104 (“customer”)
| $scenario_setup_password = $this->sharedStorage->get('scenario_setup_password'); | ||
|
|
||
| // If the provided password matches the scenario setup password, | ||
| // use the secure password generated earlier; otherwise, return the scenario setup password to cause the test to fail | ||
| return $scenario_setup_password === $password ? $this->sharedStorage->get('password') : $scenario_setup_password; | ||
| } |
There was a problem hiding this comment.
Undefined key risk in retrieveSecurePassword().
If the feature never called replaceWithSecurePassword() the lookup will
return null and === comparison will succeed, returning null
instead of a string – later strlen()/form fills will explode.
Add a guard:
Assert::notNull($scenario_setup_password, 'No secure password stored, did you forget replaceWithSecurePassword()?');| $newPassword = (empty($password) || strlen($password) < 4) | ||
| ? $password | ||
| : bin2hex(random_bytes(16)); | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Random password may violate field‑length limits & could throw.
bin2hex(random_bytes(16)) returns a 32‑char string.
Many Sylius form fields (e.g. admin/customer password) are limited to 20 – 30 chars.
A truncated value will fail validation and break the scenario silently.
random_bytes() can also throw an \Exception (PHP <8.4) and is not caught.
- : bin2hex(random_bytes(16));
+ : bin2hex(random_bytes(12)); // 24 chars fits Sylius constraints
+
+ // @todo consider wrapping in try/catch to surface RNG failures📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| $newPassword = (empty($password) || strlen($password) < 4) | |
| ? $password | |
| : bin2hex(random_bytes(16)); | |
| $newPassword = (empty($password) || strlen($password) < 4) | |
| ? $password | |
| : bin2hex(random_bytes(12)); // 24 chars fits Sylius constraints | |
| // @todo consider wrapping in try/catch to surface RNG failures |
| // Hotfix for a bug that allowed a guest to add a product to the cart belonging to a logged-in user | ||
| $hasToken = $this->sharedStorage->has('token'); | ||
| $createdAsGuest = $this->sharedStorage->has('created_as_guest') ? $this->sharedStorage->get('created_as_guest') : null; | ||
| if (!$hasToken && $createdAsGuest === false) { | ||
| $tokenValue = null; | ||
| } | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Race‑condition hot‑fix may still leak another customer’s cart.
The condition only resets $tokenValue when no token is present in
shared storage.
If a guest steals a valid but stale token cookie the branch is
skipped and they can still add items.
A safer guard:
- if (!$hasToken && $createdAsGuest === false) {
+ if ($createdAsGuest === false && (
+ !$hasToken ||
+ $this->sharedStorage->get('token') !== $tokenValue // mismatched token
+ )) {📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| // Hotfix for a bug that allowed a guest to add a product to the cart belonging to a logged-in user | |
| $hasToken = $this->sharedStorage->has('token'); | |
| $createdAsGuest = $this->sharedStorage->has('created_as_guest') ? $this->sharedStorage->get('created_as_guest') : null; | |
| if (!$hasToken && $createdAsGuest === false) { | |
| $tokenValue = null; | |
| } | |
| // Hotfix for a bug that allowed a guest to add a product to the cart belonging to a logged-in user | |
| $hasToken = $this->sharedStorage->has('token'); | |
| $createdAsGuest = $this->sharedStorage->has('created_as_guest') ? $this->sharedStorage->get('created_as_guest') : null; | |
| if ($createdAsGuest === false && ( | |
| !$hasToken || | |
| $this->sharedStorage->get('token') !== $tokenValue // mismatched token | |
| )) { | |
| $tokenValue = null; | |
| } |
| { | ||
| /** @var OrderInterface $cart */ | ||
| $cart = $this->sharedStorage->get('order'); | ||
| $orderItemId = $cart->getItems()->filter( | ||
| static fn (OrderItemInterface $orderItem): bool => $orderItem->getVariant()->getProduct() === $product, | ||
| )->first()->getId(); | ||
|
|
||
| $this->commandBus->dispatch(new ChangeItemQuantityInCart( | ||
| orderTokenValue: $tokenValue, | ||
| orderItemId: $orderItemId, | ||
| quantity: $quantity, | ||
| )); | ||
| } |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Possible NPE when product not found in cart.
first()->getId() returns null if the product is not present, leading
to an invalid UUID in ChangeItemQuantityInCart.
Add an upfront assertion:
Assert::notNull($orderItemId, sprintf('Product %s is not in the cart.', $product->getCode()));
This PR has been generated automatically.
For more details see upmerge_pr.yaml.
Remember! The upmerge should always be merged with using
Merge pull requestbutton.In case of conflicts, please resolve them manually with usign the following commands:
If you use other name for the upstream remote, please replace
upstreamwith the name of your remote pointing to theSylius/Syliusrepository.Once the conflicts are resolved, please run
git merge --continueand push the changes to this PR.Summary by CodeRabbit
New Features
Improvements