From a5e175bf04d1055431f068ef70e3a4e4232518e5 Mon Sep 17 00:00:00 2001 From: Francis Hilaire Date: Sat, 22 Oct 2022 02:28:58 +0200 Subject: [PATCH] Remove unnecessary requirements and allow more Sylius versions (#117) * Remove unnecessary requirements and allow more Sylius versions * [Build Sylius 1.12] Update composer.json to execute needed symlink script * [Build Sylius 1.12] Switch to webpack on test app * [Build Sylius 1.12] Add Sylius 1.12 dev to the build * Update webpack config * Fix Sylius 1.12 error with missing SwiftMailer * Add require new mailer, security and framework config * Add missing webpack changes * Avoid deprecated warning during BeHat tests * Fix line return * Fix webpack entry points --- .github/workflows/build.yml | 5 +- composer.json | 26 ++- node_modules | 2 +- tests/Application/.babelrc | 7 +- tests/Application/.gitignore | 1 + tests/Application/assets/admin/entry.js | 1 + tests/Application/assets/shop/entry.js | 1 + tests/Application/config/bundles.php | 2 +- tests/Application/config/packages/assets.yaml | 7 + .../packages/test_cached/framework.yaml | 6 +- .../config/packages/webpack_encore.yaml | 5 + .../config/sylius/1.10/bundles.php | 1 + .../1.10}/packages/dev/swiftmailer.yaml | 0 .../1.10}/packages/swiftmailer.yaml | 0 .../1.10}/packages/test/swiftmailer.yaml | 0 .../packages/test_cached/swiftmailer.yaml | 2 + .../config/sylius/1.11/bundles.php | 1 + .../sylius/1.11/packages/dev/swiftmailer.yaml | 2 + .../sylius/1.11/packages/swiftmailer.yaml | 2 + .../1.11/packages/test/swiftmailer.yaml | 6 + .../packages/test_cached/swiftmailer.yaml | 2 + .../config/sylius/1.12/bundles.php | 8 + .../1.12/packages/dev/jms_serializer.yaml | 12 ++ .../sylius/1.12/packages/jms_serializer.yaml | 4 + .../config/sylius/1.12/packages/mailer.yaml | 3 + .../1.12/packages/prod/jms_serializer.yaml | 10 ++ .../config/sylius/1.12/packages/security.yaml | 148 ++++++++++++++++++ .../sylius/1.12/packages/test/framework.yaml | 4 + .../sylius/1.12/packages/test/mailer.yaml | 5 + .../sylius/1.12/packages/test/security.yaml | 3 + .../1.12/packages/test_cached/framework.yaml | 2 + .../1.12/packages/test_cached/mailer.yaml | 2 + .../1.12/packages/test_cached/security.yaml | 2 + .../Application/config/sylius/1.8/bundles.php | 1 + .../sylius/1.8/packages/dev/swiftmailer.yaml | 2 + .../sylius/1.8/packages/swiftmailer.yaml | 2 + .../sylius/1.8/packages/test/swiftmailer.yaml | 6 + .../1.8/packages/test_cached/swiftmailer.yaml | 2 + .../Application/config/sylius/1.9/bundles.php | 1 + .../sylius/1.9/packages/dev/swiftmailer.yaml | 2 + .../sylius/1.9/packages/swiftmailer.yaml | 2 + .../sylius/1.9/packages/test/swiftmailer.yaml | 6 + .../1.9/packages/test_cached/swiftmailer.yaml | 2 + .../config/symfony/4.4/bundles.php | 5 + .../symfony/4.4/packages/dev/swiftmailer.yaml | 2 + .../symfony/4.4/packages/swiftmailer.yaml | 2 + tests/Application/package.json | 84 +++++----- .../Application/public/media/image/.gitignore | 0 .../SyliusAdminBundle/Layout/_logo.html.twig | 5 + .../Security/_content.html.twig | 6 + .../SyliusAdminBundle/_scripts.html.twig | 1 + .../SyliusAdminBundle/_styles.html.twig | 1 + .../Homepage/_banner.html.twig | 9 ++ .../Layout/Header/_logo.html.twig | 5 + .../SyliusShopBundle/_scripts.html.twig | 1 + .../SyliusShopBundle/_styles.html.twig | 1 + tests/Application/webpack.config.js | 36 +++-- tests/Behat/Resources/suites.yml | 8 +- 58 files changed, 399 insertions(+), 75 deletions(-) create mode 100644 tests/Application/assets/admin/entry.js create mode 100644 tests/Application/assets/shop/entry.js create mode 100644 tests/Application/config/packages/assets.yaml create mode 100644 tests/Application/config/packages/webpack_encore.yaml rename tests/Application/config/{ => sylius/1.10}/packages/dev/swiftmailer.yaml (100%) rename tests/Application/config/{ => sylius/1.10}/packages/swiftmailer.yaml (100%) rename tests/Application/config/{ => sylius/1.10}/packages/test/swiftmailer.yaml (100%) create mode 100644 tests/Application/config/sylius/1.10/packages/test_cached/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.11/packages/dev/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.11/packages/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.11/packages/test/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.11/packages/test_cached/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.12/bundles.php create mode 100644 tests/Application/config/sylius/1.12/packages/dev/jms_serializer.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/jms_serializer.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/mailer.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/prod/jms_serializer.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/security.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/test/framework.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/test/mailer.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/test/security.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/test_cached/framework.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/test_cached/mailer.yaml create mode 100644 tests/Application/config/sylius/1.12/packages/test_cached/security.yaml create mode 100644 tests/Application/config/sylius/1.8/packages/dev/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.8/packages/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.8/packages/test/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.8/packages/test_cached/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.9/packages/dev/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.9/packages/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.9/packages/test/swiftmailer.yaml create mode 100644 tests/Application/config/sylius/1.9/packages/test_cached/swiftmailer.yaml create mode 100644 tests/Application/config/symfony/4.4/bundles.php create mode 100644 tests/Application/config/symfony/4.4/packages/dev/swiftmailer.yaml create mode 100644 tests/Application/config/symfony/4.4/packages/swiftmailer.yaml delete mode 100644 tests/Application/public/media/image/.gitignore create mode 100644 tests/Application/templates/bundles/SyliusAdminBundle/Layout/_logo.html.twig create mode 100644 tests/Application/templates/bundles/SyliusAdminBundle/Security/_content.html.twig create mode 100644 tests/Application/templates/bundles/SyliusAdminBundle/_scripts.html.twig create mode 100644 tests/Application/templates/bundles/SyliusAdminBundle/_styles.html.twig create mode 100644 tests/Application/templates/bundles/SyliusShopBundle/Homepage/_banner.html.twig create mode 100644 tests/Application/templates/bundles/SyliusShopBundle/Layout/Header/_logo.html.twig create mode 100644 tests/Application/templates/bundles/SyliusShopBundle/_scripts.html.twig create mode 100644 tests/Application/templates/bundles/SyliusShopBundle/_styles.html.twig diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e1f44e0d..63eea51b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: matrix: php: ["7.4", "8.0"] symfony: ["^4.4", "^5.4"] - sylius: ["~1.9.0", "~1.10.0", "~1.11.0"] + sylius: ["~1.9.0", "~1.10.0", "~1.11.0", "~1.12.x-dev"] node: ["14.x"] mysql: ["8.0"] @@ -34,6 +34,9 @@ jobs: - php: "7.4" sylius: "~1.11.0" + - + php: "7.4" + sylius: "~1.12.x-dev" env: APP_ENV: test diff --git a/composer.json b/composer.json index 19ce5388..b493ee90 100644 --- a/composer.json +++ b/composer.json @@ -4,9 +4,7 @@ "description": "Adds product customizing to Sylius", "license": "MIT", "require": { - "php": "^7.4 || ^8.0", - "sylius/sylius": "~1.9.0 || ~1.10.0 || ~1.11.0", - "symfony/event-dispatcher": "^4.3 || ^5.0" + "sylius/sylius": "^1.9" }, "require-dev": { "behat/behat": "^3.6.1", @@ -36,6 +34,7 @@ "symfony/dotenv": "^4.4 || ^5.4", "symfony/intl": "^4.4 || ^5.4", "symfony/web-profiler-bundle": "^4.4 || ^5.4", + "symfony/webpack-encore-bundle": "^1.15", "vimeo/psalm": "4.7.1", "mamazu/documentation-validator": "dev-master", "polishsymfonycommunity/symfony-mocker-container": "^1.0" @@ -53,7 +52,25 @@ "autoload-dev": { "classmap": ["tests/Application/Kernel.php"] }, + "config": { + "sort-packages": true, + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": false, + "phpstan/extension-installer": true, + "symfony/flex": true, + "symfony/thanks": true + } + }, "scripts": { + "post-install-cmd": [ + "@php bin/create_node_symlink.php" + ], + "post-update-cmd": [ + "@php bin/create_node_symlink.php" + ], + "post-create-project-cmd": [ + "@php bin/create_node_symlink.php" + ], "analyse": [ "vendor/bin/ecs check --ansi --no-progress-bar src/ tests/PHPUnit --config etc/coding-standard.php", "vendor/bin/phpstan analyse -c phpstan.neon --no-progress -l max src/" @@ -61,8 +78,5 @@ "fix": [ "vendor/bin/ecs check --ansi --no-progress-bar src/ tests/PHPUnit --config etc/coding-standard.php --fix" ] - }, - "config": { - "allow-plugins": false } } diff --git a/node_modules b/node_modules index 50aaa45d..9270531f 120000 --- a/node_modules +++ b/node_modules @@ -1 +1 @@ -tests/Application/node_modules/ \ No newline at end of file +tests/Application/node_modules \ No newline at end of file diff --git a/tests/Application/.babelrc b/tests/Application/.babelrc index e563a62e..14eaf4cc 100644 --- a/tests/Application/.babelrc +++ b/tests/Application/.babelrc @@ -1,14 +1,13 @@ { "presets": [ - ["env", { + ["@babel/preset-env", { "targets": { "node": "6" - }, - "useBuiltIns": true + } }] ], "plugins": [ - ["transform-object-rest-spread", { + ["@babel/plugin-proposal-object-rest-spread", { "useBuiltIns": true }] ] diff --git a/tests/Application/.gitignore b/tests/Application/.gitignore index 8ad1225e..bc600a8c 100644 --- a/tests/Application/.gitignore +++ b/tests/Application/.gitignore @@ -1,4 +1,5 @@ /public/assets +/public/build /public/css /public/js /public/media/* diff --git a/tests/Application/assets/admin/entry.js b/tests/Application/assets/admin/entry.js new file mode 100644 index 00000000..635f5acc --- /dev/null +++ b/tests/Application/assets/admin/entry.js @@ -0,0 +1 @@ +import 'sylius/bundle/AdminBundle/Resources/private/entry'; diff --git a/tests/Application/assets/shop/entry.js b/tests/Application/assets/shop/entry.js new file mode 100644 index 00000000..aadc3174 --- /dev/null +++ b/tests/Application/assets/shop/entry.js @@ -0,0 +1 @@ +import 'sylius/bundle/ShopBundle/Resources/private/entry'; diff --git a/tests/Application/config/bundles.php b/tests/Application/config/bundles.php index 6b69567c..83e5afc4 100644 --- a/tests/Application/config/bundles.php +++ b/tests/Application/config/bundles.php @@ -4,7 +4,6 @@ Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], - Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true], Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], Sylius\Bundle\OrderBundle\SyliusOrderBundle::class => ['all' => true], @@ -54,4 +53,5 @@ Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle::class => ['all' => true], Sylius\Bundle\ApiBundle\SyliusApiBundle::class => ['all' => true], SyliusLabs\DoctrineMigrationsExtraBundle\SyliusLabsDoctrineMigrationsExtraBundle::class => ['all' => true], + Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true], ]; diff --git a/tests/Application/config/packages/assets.yaml b/tests/Application/config/packages/assets.yaml new file mode 100644 index 00000000..b1ea48b2 --- /dev/null +++ b/tests/Application/config/packages/assets.yaml @@ -0,0 +1,7 @@ +framework: + assets: + packages: + shop: + json_manifest_path: '%kernel.project_dir%/public/build/shop/manifest.json' + admin: + json_manifest_path: '%kernel.project_dir%/public/build/admin/manifest.json' diff --git a/tests/Application/config/packages/test_cached/framework.yaml b/tests/Application/config/packages/test_cached/framework.yaml index 76d7e5e1..7c6483dd 100644 --- a/tests/Application/config/packages/test_cached/framework.yaml +++ b/tests/Application/config/packages/test_cached/framework.yaml @@ -1,4 +1,2 @@ -framework: - test: ~ - session: - storage_id: session.storage.mock_file +imports: + - { resource: "../test/framework.yaml" } diff --git a/tests/Application/config/packages/webpack_encore.yaml b/tests/Application/config/packages/webpack_encore.yaml new file mode 100644 index 00000000..9427d363 --- /dev/null +++ b/tests/Application/config/packages/webpack_encore.yaml @@ -0,0 +1,5 @@ +webpack_encore: + output_path: '%kernel.project_dir%/public/build/default' + builds: + shop: '%kernel.project_dir%/public/build/shop' + admin: '%kernel.project_dir%/public/build/admin' diff --git a/tests/Application/config/sylius/1.10/bundles.php b/tests/Application/config/sylius/1.10/bundles.php index bd33f4ae..091be16a 100644 --- a/tests/Application/config/sylius/1.10/bundles.php +++ b/tests/Application/config/sylius/1.10/bundles.php @@ -1,6 +1,7 @@ ['all' => true], BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true], SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true], ]; diff --git a/tests/Application/config/packages/dev/swiftmailer.yaml b/tests/Application/config/sylius/1.10/packages/dev/swiftmailer.yaml similarity index 100% rename from tests/Application/config/packages/dev/swiftmailer.yaml rename to tests/Application/config/sylius/1.10/packages/dev/swiftmailer.yaml diff --git a/tests/Application/config/packages/swiftmailer.yaml b/tests/Application/config/sylius/1.10/packages/swiftmailer.yaml similarity index 100% rename from tests/Application/config/packages/swiftmailer.yaml rename to tests/Application/config/sylius/1.10/packages/swiftmailer.yaml diff --git a/tests/Application/config/packages/test/swiftmailer.yaml b/tests/Application/config/sylius/1.10/packages/test/swiftmailer.yaml similarity index 100% rename from tests/Application/config/packages/test/swiftmailer.yaml rename to tests/Application/config/sylius/1.10/packages/test/swiftmailer.yaml diff --git a/tests/Application/config/sylius/1.10/packages/test_cached/swiftmailer.yaml b/tests/Application/config/sylius/1.10/packages/test_cached/swiftmailer.yaml new file mode 100644 index 00000000..1bc61b80 --- /dev/null +++ b/tests/Application/config/sylius/1.10/packages/test_cached/swiftmailer.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "../test/swiftmailer.yaml" } diff --git a/tests/Application/config/sylius/1.11/bundles.php b/tests/Application/config/sylius/1.11/bundles.php index ce7c1235..9a78752c 100644 --- a/tests/Application/config/sylius/1.11/bundles.php +++ b/tests/Application/config/sylius/1.11/bundles.php @@ -1,6 +1,7 @@ ['all' => true], BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true], SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true], Sylius\Calendar\SyliusCalendarBundle::class => ['all' => true], diff --git a/tests/Application/config/sylius/1.11/packages/dev/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/dev/swiftmailer.yaml new file mode 100644 index 00000000..f4380780 --- /dev/null +++ b/tests/Application/config/sylius/1.11/packages/dev/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/tests/Application/config/sylius/1.11/packages/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/swiftmailer.yaml new file mode 100644 index 00000000..3bab0d32 --- /dev/null +++ b/tests/Application/config/sylius/1.11/packages/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + url: '%env(MAILER_URL)%' diff --git a/tests/Application/config/sylius/1.11/packages/test/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/test/swiftmailer.yaml new file mode 100644 index 00000000..c438f4b2 --- /dev/null +++ b/tests/Application/config/sylius/1.11/packages/test/swiftmailer.yaml @@ -0,0 +1,6 @@ +swiftmailer: + disable_delivery: true + logging: true + spool: + type: file + path: "%kernel.cache_dir%/spool" diff --git a/tests/Application/config/sylius/1.11/packages/test_cached/swiftmailer.yaml b/tests/Application/config/sylius/1.11/packages/test_cached/swiftmailer.yaml new file mode 100644 index 00000000..1bc61b80 --- /dev/null +++ b/tests/Application/config/sylius/1.11/packages/test_cached/swiftmailer.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "../test/swiftmailer.yaml" } diff --git a/tests/Application/config/sylius/1.12/bundles.php b/tests/Application/config/sylius/1.12/bundles.php new file mode 100644 index 00000000..4a8358cd --- /dev/null +++ b/tests/Application/config/sylius/1.12/bundles.php @@ -0,0 +1,8 @@ + ['all' => true], + SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true], + Sylius\Calendar\SyliusCalendarBundle::class => ['all' => true], + League\FlysystemBundle\FlysystemBundle::class => ['all' => true], +]; diff --git a/tests/Application/config/sylius/1.12/packages/dev/jms_serializer.yaml b/tests/Application/config/sylius/1.12/packages/dev/jms_serializer.yaml new file mode 100644 index 00000000..2f32a9b1 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/dev/jms_serializer.yaml @@ -0,0 +1,12 @@ +jms_serializer: + visitors: + json_serialization: + options: + - JSON_PRETTY_PRINT + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION + json_deserialization: + options: + - JSON_PRETTY_PRINT + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION diff --git a/tests/Application/config/sylius/1.12/packages/jms_serializer.yaml b/tests/Application/config/sylius/1.12/packages/jms_serializer.yaml new file mode 100644 index 00000000..ed7bc613 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/jms_serializer.yaml @@ -0,0 +1,4 @@ +jms_serializer: + visitors: + xml_serialization: + format_output: '%kernel.debug%' diff --git a/tests/Application/config/sylius/1.12/packages/mailer.yaml b/tests/Application/config/sylius/1.12/packages/mailer.yaml new file mode 100644 index 00000000..0a0697c8 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/mailer.yaml @@ -0,0 +1,3 @@ +framework: + mailer: + dsn: '%env(MAILER_DSN)%' diff --git a/tests/Application/config/sylius/1.12/packages/prod/jms_serializer.yaml b/tests/Application/config/sylius/1.12/packages/prod/jms_serializer.yaml new file mode 100644 index 00000000..c2881820 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/prod/jms_serializer.yaml @@ -0,0 +1,10 @@ +jms_serializer: + visitors: + json_serialization: + options: + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION + json_deserialization: + options: + - JSON_UNESCAPED_SLASHES + - JSON_PRESERVE_ZERO_FRACTION diff --git a/tests/Application/config/sylius/1.12/packages/security.yaml b/tests/Application/config/sylius/1.12/packages/security.yaml new file mode 100644 index 00000000..10628102 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/security.yaml @@ -0,0 +1,148 @@ +parameters: + sylius.security.admin_regex: "^/%sylius_admin.path_name%" + sylius.security.api_regex: "^/api" + sylius.security.shop_regex: "^/(?!%sylius_admin.path_name%|new-api|api/.*|api$|media/.*)[^/]++" + sylius.security.new_api_route: "/new-api" + sylius.security.new_api_regex: "^%sylius.security.new_api_route%" + sylius.security.new_api_admin_route: "%sylius.security.new_api_route%/admin" + sylius.security.new_api_admin_regex: "^%sylius.security.new_api_admin_route%" + sylius.security.new_api_shop_route: "%sylius.security.new_api_route%/shop" + sylius.security.new_api_shop_regex: "^%sylius.security.new_api_shop_route%" + +security: + always_authenticate_before_granting: true + providers: + sylius_admin_user_provider: + id: sylius.admin_user_provider.email_or_name_based + sylius_api_admin_user_provider: + id: sylius.admin_user_provider.email_or_name_based + sylius_shop_user_provider: + id: sylius.shop_user_provider.email_or_name_based + sylius_api_shop_user_provider: + id: sylius.shop_user_provider.email_or_name_based + sylius_api_chain_provider: + chain: + providers: [sylius_api_shop_user_provider, sylius_api_admin_user_provider] + + encoders: + Sylius\Component\User\Model\UserInterface: argon2i + firewalls: + admin: + switch_user: true + context: admin + pattern: "%sylius.security.admin_regex%" + provider: sylius_admin_user_provider + form_login: + provider: sylius_admin_user_provider + login_path: sylius_admin_login + check_path: sylius_admin_login_check + failure_path: sylius_admin_login + default_target_path: sylius_admin_dashboard + use_forward: false + use_referer: true + csrf_token_generator: security.csrf.token_manager + csrf_parameter: _csrf_admin_security_token + csrf_token_id: admin_authenticate + remember_me: + secret: "%env(APP_SECRET)%" + path: "/%sylius_admin.path_name%" + name: APP_ADMIN_REMEMBER_ME + lifetime: 31536000 + remember_me_parameter: _remember_me + logout: + path: sylius_admin_logout + target: sylius_admin_login + anonymous: true + + new_api_admin_user: + pattern: "%sylius.security.new_api_route%/admin-user-authentication-token" + provider: sylius_admin_user_provider + stateless: true + anonymous: true + json_login: + check_path: "%sylius.security.new_api_route%/admin-user-authentication-token" + username_path: email + password_path: password + success_handler: lexik_jwt_authentication.handler.authentication_success + failure_handler: lexik_jwt_authentication.handler.authentication_failure + guard: + authenticators: + - lexik_jwt_authentication.jwt_token_authenticator + + new_api_shop_user: + pattern: "%sylius.security.new_api_route%/shop-user-authentication-token" + provider: sylius_shop_user_provider + stateless: true + anonymous: true + json_login: + check_path: "%sylius.security.new_api_route%/shop-user-authentication-token" + username_path: email + password_path: password + success_handler: lexik_jwt_authentication.handler.authentication_success + failure_handler: lexik_jwt_authentication.handler.authentication_failure + guard: + authenticators: + - lexik_jwt_authentication.jwt_token_authenticator + + new_api: + pattern: "%sylius.security.new_api_regex%/*" + provider: sylius_api_chain_provider + stateless: true + anonymous: lazy + guard: + authenticators: + - lexik_jwt_authentication.jwt_token_authenticator + + shop: + switch_user: { role: ROLE_ALLOWED_TO_SWITCH } + context: shop + pattern: "%sylius.security.shop_regex%" + provider: sylius_shop_user_provider + form_login: + success_handler: sylius.authentication.success_handler + failure_handler: sylius.authentication.failure_handler + provider: sylius_shop_user_provider + login_path: sylius_shop_login + check_path: sylius_shop_login_check + failure_path: sylius_shop_login + default_target_path: sylius_shop_homepage + use_forward: false + use_referer: true + csrf_token_generator: security.csrf.token_manager + csrf_parameter: _csrf_shop_security_token + csrf_token_id: shop_authenticate + remember_me: + secret: "%env(APP_SECRET)%" + name: APP_SHOP_REMEMBER_ME + lifetime: 31536000 + remember_me_parameter: _remember_me + logout: + path: sylius_shop_logout + target: sylius_shop_login + invalidate_session: false + success_handler: sylius.handler.shop_user_logout + anonymous: true + + dev: + pattern: ^/(_(profiler|wdt)|css|images|js)/ + security: false + + access_control: + - { path: "%sylius.security.admin_regex%/_partial", role: IS_AUTHENTICATED_ANONYMOUSLY, ips: [127.0.0.1, ::1] } + - { path: "%sylius.security.admin_regex%/_partial", role: ROLE_NO_ACCESS } + - { path: "%sylius.security.shop_regex%/_partial", role: IS_AUTHENTICATED_ANONYMOUSLY, ips: [127.0.0.1, ::1] } + - { path: "%sylius.security.shop_regex%/_partial", role: ROLE_NO_ACCESS } + + - { path: "%sylius.security.admin_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: "%sylius.security.api_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: "%sylius.security.shop_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY } + + - { path: "%sylius.security.shop_regex%/register", role: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: "%sylius.security.shop_regex%/verify", role: IS_AUTHENTICATED_ANONYMOUSLY } + + - { path: "%sylius.security.admin_regex%", role: ROLE_ADMINISTRATION_ACCESS } + - { path: "%sylius.security.api_regex%/.*", role: ROLE_API_ACCESS } + - { path: "%sylius.security.shop_regex%/account", role: ROLE_USER } + + - { path: "%sylius.security.new_api_admin_regex%/.*", role: ROLE_API_ACCESS } + - { path: "%sylius.security.new_api_shop_regex%/.*", role: IS_AUTHENTICATED_ANONYMOUSLY } diff --git a/tests/Application/config/sylius/1.12/packages/test/framework.yaml b/tests/Application/config/sylius/1.12/packages/test/framework.yaml new file mode 100644 index 00000000..28277fd4 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/test/framework.yaml @@ -0,0 +1,4 @@ +framework: + test: ~ + session: + storage_factory_id: session.storage.factory.mock_file diff --git a/tests/Application/config/sylius/1.12/packages/test/mailer.yaml b/tests/Application/config/sylius/1.12/packages/test/mailer.yaml new file mode 100644 index 00000000..52610d69 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/test/mailer.yaml @@ -0,0 +1,5 @@ +framework: + cache: + pools: + test.mailer_pool: + adapter: cache.adapter.filesystem diff --git a/tests/Application/config/sylius/1.12/packages/test/security.yaml b/tests/Application/config/sylius/1.12/packages/test/security.yaml new file mode 100644 index 00000000..eb3fca80 --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/test/security.yaml @@ -0,0 +1,3 @@ +security: + password_hashers: + Sylius\Component\User\Model\UserInterface: argon2i diff --git a/tests/Application/config/sylius/1.12/packages/test_cached/framework.yaml b/tests/Application/config/sylius/1.12/packages/test_cached/framework.yaml new file mode 100644 index 00000000..7c6483dd --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/test_cached/framework.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "../test/framework.yaml" } diff --git a/tests/Application/config/sylius/1.12/packages/test_cached/mailer.yaml b/tests/Application/config/sylius/1.12/packages/test_cached/mailer.yaml new file mode 100644 index 00000000..16f3170a --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/test_cached/mailer.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "../test/mailer.yaml" } diff --git a/tests/Application/config/sylius/1.12/packages/test_cached/security.yaml b/tests/Application/config/sylius/1.12/packages/test_cached/security.yaml new file mode 100644 index 00000000..7c6483dd --- /dev/null +++ b/tests/Application/config/sylius/1.12/packages/test_cached/security.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "../test/framework.yaml" } diff --git a/tests/Application/config/sylius/1.8/bundles.php b/tests/Application/config/sylius/1.8/bundles.php index c3c8ea46..7e6006d3 100644 --- a/tests/Application/config/sylius/1.8/bundles.php +++ b/tests/Application/config/sylius/1.8/bundles.php @@ -1,6 +1,7 @@ ['all' => true], Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true], WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle::class => ['all' => true], FOS\OAuthServerBundle\FOSOAuthServerBundle::class => ['all' => true], diff --git a/tests/Application/config/sylius/1.8/packages/dev/swiftmailer.yaml b/tests/Application/config/sylius/1.8/packages/dev/swiftmailer.yaml new file mode 100644 index 00000000..f4380780 --- /dev/null +++ b/tests/Application/config/sylius/1.8/packages/dev/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/tests/Application/config/sylius/1.8/packages/swiftmailer.yaml b/tests/Application/config/sylius/1.8/packages/swiftmailer.yaml new file mode 100644 index 00000000..3bab0d32 --- /dev/null +++ b/tests/Application/config/sylius/1.8/packages/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + url: '%env(MAILER_URL)%' diff --git a/tests/Application/config/sylius/1.8/packages/test/swiftmailer.yaml b/tests/Application/config/sylius/1.8/packages/test/swiftmailer.yaml new file mode 100644 index 00000000..c438f4b2 --- /dev/null +++ b/tests/Application/config/sylius/1.8/packages/test/swiftmailer.yaml @@ -0,0 +1,6 @@ +swiftmailer: + disable_delivery: true + logging: true + spool: + type: file + path: "%kernel.cache_dir%/spool" diff --git a/tests/Application/config/sylius/1.8/packages/test_cached/swiftmailer.yaml b/tests/Application/config/sylius/1.8/packages/test_cached/swiftmailer.yaml new file mode 100644 index 00000000..1bc61b80 --- /dev/null +++ b/tests/Application/config/sylius/1.8/packages/test_cached/swiftmailer.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "../test/swiftmailer.yaml" } diff --git a/tests/Application/config/sylius/1.9/bundles.php b/tests/Application/config/sylius/1.9/bundles.php index 66f523db..ca99a2e8 100644 --- a/tests/Application/config/sylius/1.9/bundles.php +++ b/tests/Application/config/sylius/1.9/bundles.php @@ -1,6 +1,7 @@ ['all' => true], BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true], SyliusLabs\Polyfill\Symfony\Security\Bundle\SyliusLabsPolyfillSymfonySecurityBundle::class => ['all' => true], FOS\OAuthServerBundle\FOSOAuthServerBundle::class => ['all' => true], diff --git a/tests/Application/config/sylius/1.9/packages/dev/swiftmailer.yaml b/tests/Application/config/sylius/1.9/packages/dev/swiftmailer.yaml new file mode 100644 index 00000000..f4380780 --- /dev/null +++ b/tests/Application/config/sylius/1.9/packages/dev/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/tests/Application/config/sylius/1.9/packages/swiftmailer.yaml b/tests/Application/config/sylius/1.9/packages/swiftmailer.yaml new file mode 100644 index 00000000..3bab0d32 --- /dev/null +++ b/tests/Application/config/sylius/1.9/packages/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + url: '%env(MAILER_URL)%' diff --git a/tests/Application/config/sylius/1.9/packages/test/swiftmailer.yaml b/tests/Application/config/sylius/1.9/packages/test/swiftmailer.yaml new file mode 100644 index 00000000..c438f4b2 --- /dev/null +++ b/tests/Application/config/sylius/1.9/packages/test/swiftmailer.yaml @@ -0,0 +1,6 @@ +swiftmailer: + disable_delivery: true + logging: true + spool: + type: file + path: "%kernel.cache_dir%/spool" diff --git a/tests/Application/config/sylius/1.9/packages/test_cached/swiftmailer.yaml b/tests/Application/config/sylius/1.9/packages/test_cached/swiftmailer.yaml new file mode 100644 index 00000000..1bc61b80 --- /dev/null +++ b/tests/Application/config/sylius/1.9/packages/test_cached/swiftmailer.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "../test/swiftmailer.yaml" } diff --git a/tests/Application/config/symfony/4.4/bundles.php b/tests/Application/config/symfony/4.4/bundles.php new file mode 100644 index 00000000..cabc970f --- /dev/null +++ b/tests/Application/config/symfony/4.4/bundles.php @@ -0,0 +1,5 @@ + ['all' => true], +]; diff --git a/tests/Application/config/symfony/4.4/packages/dev/swiftmailer.yaml b/tests/Application/config/symfony/4.4/packages/dev/swiftmailer.yaml new file mode 100644 index 00000000..f4380780 --- /dev/null +++ b/tests/Application/config/symfony/4.4/packages/dev/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + disable_delivery: true diff --git a/tests/Application/config/symfony/4.4/packages/swiftmailer.yaml b/tests/Application/config/symfony/4.4/packages/swiftmailer.yaml new file mode 100644 index 00000000..3bab0d32 --- /dev/null +++ b/tests/Application/config/symfony/4.4/packages/swiftmailer.yaml @@ -0,0 +1,2 @@ +swiftmailer: + url: '%env(MAILER_URL)%' diff --git a/tests/Application/package.json b/tests/Application/package.json index 8880db7b..32ccdc44 100644 --- a/tests/Application/package.json +++ b/tests/Application/package.json @@ -1,53 +1,63 @@ { "dependencies": { - "babel-polyfill": "^6.26.0", - "chart.js": "^2.9.3", - "jquery": "^3.4.0", + "@babel/polyfill": "^7.0.0", + "chart.js": "^3.7.1", + "jquery": "^3.5.0", "jquery.dirtyforms": "^2.0.0", "lightbox2": "^2.9.0", "semantic-ui-css": "^2.2.0", "slick-carousel": "^1.8.1" }, "devDependencies": { - "@symfony/webpack-encore": "^0.28.0", - "babel-core": "^6.26.3", - "babel-plugin-external-helpers": "^6.22.0", - "babel-plugin-module-resolver": "^3.1.1", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "babel-preset-env": "^1.7.0", - "babel-register": "^6.26.0", + "@babel/core": "^7.0.0", + "@babel/plugin-external-helpers": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/preset-env": "^7.18.10", + "@babel/register": "^7.0.0", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^22.0.2", + "@rollup/plugin-inject": "^4.0.4", + "@rollup/plugin-node-resolve": "^13.3.0", + "@semantic-ui-react/css-patch": "^1.1.2", + "@symfony/webpack-encore": "^3.1.0", + "babel-plugin-fast-async": "^6.1.2", + "babel-plugin-module-resolver": "^4.1.0", "dedent": "^0.7.0", - "eslint": "^4.19.1", - "eslint-config-airbnb-base": "^12.1.0", - "eslint-import-resolver-babel-module": "^4.0.0", - "eslint-plugin-import": "^2.11.0", - "fast-async": "^6.3.7", - "gulp": "^4.0.0", - "gulp-chug": "^0.5", - "gulp-concat": "^2.6.0", - "gulp-debug": "^2.1.2", - "gulp-if": "^2.0.0", - "gulp-livereload": "^4.0.1", - "gulp-order": "^1.1.1", - "gulp-sass": "^4.0.1", - "gulp-sourcemaps": "^1.6.0", - "gulp-uglifycss": "^1.0.5", - "merge-stream": "^1.0.0", - "rollup": "^0.60.2", - "rollup-plugin-babel": "^3.0.4", - "rollup-plugin-commonjs": "^9.1.3", - "rollup-plugin-inject": "^2.0.0", - "rollup-plugin-node-resolve": "^3.3.0", - "rollup-plugin-uglify": "^4.0.0", - "sass-loader": "^7.0.1", - "upath": "^1.1.0", - "yargs": "^6.4.0" + "eslint": "^8.23.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-import-resolver-babel-module": "^5.3.1", + "eslint-plugin-import": "^2.26.0", + "fast-async": "^6.3.8", + "gulp": "^4.0.2", + "gulp-chug": "^0.5.1", + "gulp-concat": "^2.6.1", + "gulp-debug": "^4.0.0", + "gulp-if": "^3.0.0", + "gulp-livereload": "^4.0.2", + "gulp-order": "^1.2.0", + "gulp-sass": "^5.1.0", + "gulp-sourcemaps": "^3.0.0", + "gulp-uglifycss": "^1.1.0", + "merge-stream": "^2.0.0", + "rollup": "^2.79.0", + "rollup-plugin-terser": "^7.0.2", + "sass": "^1.54.8", + "sass-loader": "^13.0.0", + "upath": "^2.0.1", + "yargs": "^17.5.1" }, + "engines": { + "node": "^14 || ^16 || ^18" + }, + "engineStrict": true, "scripts": { - "build": "gulp build", + "watch": "encore dev --watch", + "build": "encore dev", + "build:prod": "encore production", "gulp": "gulp build", "lint": "yarn lint:js", - "lint:js": "eslint gulpfile.babel.js src/Sylius/Bundle/AdminBundle/gulpfile.babel.js src/Sylius/Bundle/ShopBundle/gulpfile.babel.js src/Sylius/Bundle/UiBundle/Resources/private/js src/Sylius/Bundle/AdminBundle/Resources/private/js src/Sylius/Bundle/ShopBundle/Resources/private/js" + "lint:js": "eslint gulpfile.babel.js src/Sylius/Bundle/AdminBundle/gulpfile.babel.js src/Sylius/Bundle/ShopBundle/gulpfile.babel.js src/Sylius/Bundle/UiBundle/Resources/private/js src/Sylius/Bundle/AdminBundle/Resources/private/js src/Sylius/Bundle/ShopBundle/Resources/private/js", + "postinstall": "semantic-ui-css-patch" }, "repository": { "type": "git", diff --git a/tests/Application/public/media/image/.gitignore b/tests/Application/public/media/image/.gitignore deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_logo.html.twig b/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_logo.html.twig new file mode 100644 index 00000000..1d9fa7d0 --- /dev/null +++ b/tests/Application/templates/bundles/SyliusAdminBundle/Layout/_logo.html.twig @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/tests/Application/templates/bundles/SyliusAdminBundle/Security/_content.html.twig b/tests/Application/templates/bundles/SyliusAdminBundle/Security/_content.html.twig new file mode 100644 index 00000000..ce176210 --- /dev/null +++ b/tests/Application/templates/bundles/SyliusAdminBundle/Security/_content.html.twig @@ -0,0 +1,6 @@ +{% include '@SyliusUi/Security/_login.html.twig' + with { + 'action': path('sylius_admin_login_check'), + 'paths': {'logo': asset('build/admin/images/logo.png', 'admin')} +} +%} diff --git a/tests/Application/templates/bundles/SyliusAdminBundle/_scripts.html.twig b/tests/Application/templates/bundles/SyliusAdminBundle/_scripts.html.twig new file mode 100644 index 00000000..f5f98358 --- /dev/null +++ b/tests/Application/templates/bundles/SyliusAdminBundle/_scripts.html.twig @@ -0,0 +1 @@ +{{ encore_entry_script_tags('admin-entry', null, 'admin') }} diff --git a/tests/Application/templates/bundles/SyliusAdminBundle/_styles.html.twig b/tests/Application/templates/bundles/SyliusAdminBundle/_styles.html.twig new file mode 100644 index 00000000..a96144cd --- /dev/null +++ b/tests/Application/templates/bundles/SyliusAdminBundle/_styles.html.twig @@ -0,0 +1 @@ +{{ encore_entry_link_tags('admin-entry', null, 'admin') }} diff --git a/tests/Application/templates/bundles/SyliusShopBundle/Homepage/_banner.html.twig b/tests/Application/templates/bundles/SyliusShopBundle/Homepage/_banner.html.twig new file mode 100644 index 00000000..84864935 --- /dev/null +++ b/tests/Application/templates/bundles/SyliusShopBundle/Homepage/_banner.html.twig @@ -0,0 +1,9 @@ +
+
+ {{ 'sylius.homepage.banner_content'|trans }} +
+
+
{{ 'sylius.homepage.banner_content'|trans }}
+ {{ 'sylius.homepage.banner_button'|trans }} +
+
diff --git a/tests/Application/templates/bundles/SyliusShopBundle/Layout/Header/_logo.html.twig b/tests/Application/templates/bundles/SyliusShopBundle/Layout/Header/_logo.html.twig new file mode 100644 index 00000000..84b8df56 --- /dev/null +++ b/tests/Application/templates/bundles/SyliusShopBundle/Layout/Header/_logo.html.twig @@ -0,0 +1,5 @@ +
+ + Sylius logo + +
diff --git a/tests/Application/templates/bundles/SyliusShopBundle/_scripts.html.twig b/tests/Application/templates/bundles/SyliusShopBundle/_scripts.html.twig new file mode 100644 index 00000000..d1655bb9 --- /dev/null +++ b/tests/Application/templates/bundles/SyliusShopBundle/_scripts.html.twig @@ -0,0 +1 @@ +{{ encore_entry_script_tags('shop-entry', null, 'shop') }} diff --git a/tests/Application/templates/bundles/SyliusShopBundle/_styles.html.twig b/tests/Application/templates/bundles/SyliusShopBundle/_styles.html.twig new file mode 100644 index 00000000..fd2c7cb4 --- /dev/null +++ b/tests/Application/templates/bundles/SyliusShopBundle/_styles.html.twig @@ -0,0 +1 @@ +{{ encore_entry_link_tags('shop-entry', null, 'shop') }} diff --git a/tests/Application/webpack.config.js b/tests/Application/webpack.config.js index ba0308f7..599e3711 100644 --- a/tests/Application/webpack.config.js +++ b/tests/Application/webpack.config.js @@ -1,46 +1,48 @@ const path = require('path'); const Encore = require('@symfony/webpack-encore'); -const syliusBundles = path.resolve(__dirname, 'vendor/sylius/sylius/src/Sylius/Bundle/'); +const syliusBundles = path.resolve(__dirname, '../../vendor/sylius/sylius/src/Sylius/Bundle/'); const uiBundleScripts = path.resolve(syliusBundles, 'UiBundle/Resources/private/js/'); const uiBundleResources = path.resolve(syliusBundles, 'UiBundle/Resources/private/'); // Shop config Encore - .setOutputPath('public/build/shop/') - .setPublicPath('/build/shop') - .addEntry('shop-entry', './assets/shop/entry.js') - .disableSingleRuntimeChunk() - .cleanupOutputBeforeBuild() - .enableSourceMaps(!Encore.isProduction()) - .enableVersioning(Encore.isProduction()) - .enableSassLoader(); + .setOutputPath('public/build/shop/') + .setPublicPath('/build/shop') + .addEntry('shop-entry', './assets/shop/entry.js') + .disableSingleRuntimeChunk() + .cleanupOutputBeforeBuild() + .enableSourceMaps(!Encore.isProduction()) + .enableVersioning(Encore.isProduction()) + .enableSassLoader(); const shopConfig = Encore.getWebpackConfig(); shopConfig.resolve.alias['sylius/ui'] = uiBundleScripts; shopConfig.resolve.alias['sylius/ui-resources'] = uiBundleResources; shopConfig.resolve.alias['sylius/bundle'] = syliusBundles; +shopConfig.resolve.alias['chart.js/dist/Chart.min'] = path.resolve(__dirname, 'node_modules/chart.js/dist/chart.min.js'); shopConfig.name = 'shop'; Encore.reset(); // Admin config Encore - .setOutputPath('public/build/admin/') - .setPublicPath('/build/admin') - .addEntry('admin-entry', './assets/admin/entry.js') - .disableSingleRuntimeChunk() - .cleanupOutputBeforeBuild() - .enableSourceMaps(!Encore.isProduction()) - .enableVersioning(Encore.isProduction()) - .enableSassLoader(); + .setOutputPath('public/build/admin/') + .setPublicPath('/build/admin') + .addEntry('admin-entry', './assets/admin/entry.js') + .disableSingleRuntimeChunk() + .cleanupOutputBeforeBuild() + .enableSourceMaps(!Encore.isProduction()) + .enableVersioning(Encore.isProduction()) + .enableSassLoader(); const adminConfig = Encore.getWebpackConfig(); adminConfig.resolve.alias['sylius/ui'] = uiBundleScripts; adminConfig.resolve.alias['sylius/ui-resources'] = uiBundleResources; adminConfig.resolve.alias['sylius/bundle'] = syliusBundles; +adminConfig.resolve.alias['chart.js/dist/Chart.min'] = path.resolve(__dirname, 'node_modules/chart.js/dist/chart.min.js'); adminConfig.externals = Object.assign({}, adminConfig.externals, { window: 'window', document: 'document' }); adminConfig.name = 'admin'; diff --git a/tests/Behat/Resources/suites.yml b/tests/Behat/Resources/suites.yml index 0373efe1..7daa2daa 100644 --- a/tests/Behat/Resources/suites.yml +++ b/tests/Behat/Resources/suites.yml @@ -17,7 +17,7 @@ default: - brille24.behat.context.admin.customer_options filters: - tags: "@admin && @customer_options && @ui" + tags: "@admin&&@customer_options&&@ui" ui_admin_customer_option_groups: contexts: @@ -34,7 +34,7 @@ default: - brille24.behat.context.admin.customer_option_groups filters: - tags: "@admin && @customer_option_groups && @ui" + tags: "@admin&&@customer_option_groups&&@ui" ui_admin_products_with_customer_options: contexts: @@ -51,7 +51,7 @@ default: - brille24.behat.context.admin.product filters: - tags: "@admin && @products && @ui" + tags: "@admin&&@products&&@ui" ui_shop_products_with_customer_options: contexts: @@ -83,4 +83,4 @@ default: - brille24.behat.context.shop.checkout filters: - tags: "@shop && @customer_options" + tags: "@shop&&@customer_options"