From 7bcc0c0e512f8c3d3d01e1e98a1b2a3ae49f06e8 Mon Sep 17 00:00:00 2001 From: maxperei Date: Fri, 14 Mar 2025 09:46:11 +0100 Subject: [PATCH 01/11] chore(migr): move directory structure and edit config accordingly to match sylius2 requirements and sf7 standards --- .github/workflows/analysis.yaml | 3 ++- .github/workflows/sylius.yaml | 9 ++++----- CONTRIBUTING.md | 6 +++--- Makefile | 8 ++++---- README.md | 4 ++-- composer.json | 19 ++++++++++--------- .../routes}/admin_routing.yaml | 2 +- .../Resources/config => config}/services.yaml | 4 ++-- .../Application/config/routes/mailtester.yaml | 2 +- ruleset/rector.php | 7 ++----- .../SynoliaSyliusMailTesterExtension.php | 2 +- src/SynoliaSyliusMailTesterPlugin.php | 5 +++++ .../Admin/MailTester/mail_tester.html.twig | 0 .../messages.en.yml | 0 .../messages.fr.yml | 0 15 files changed, 37 insertions(+), 34 deletions(-) rename {src/Resources/config => config/routes}/admin_routing.yaml (75%) rename {src/Resources/config => config}/services.yaml (53%) rename {src/Resources/views => templates}/Admin/MailTester/mail_tester.html.twig (100%) rename {src/Resources/translations => translations}/messages.en.yml (100%) rename {src/Resources/translations => translations}/messages.fr.yml (100%) diff --git a/.github/workflows/analysis.yaml b/.github/workflows/analysis.yaml index be82375..08160c3 100644 --- a/.github/workflows/analysis.yaml +++ b/.github/workflows/analysis.yaml @@ -19,7 +19,8 @@ jobs: - 8.2 - 8.3 symfony: - - '6.4.*' + - '7.1.*' + - '7.2.*' env: APP_ENV: test steps: diff --git a/.github/workflows/sylius.yaml b/.github/workflows/sylius.yaml index a3e9ed9..55d1d6d 100644 --- a/.github/workflows/sylius.yaml +++ b/.github/workflows/sylius.yaml @@ -19,13 +19,12 @@ jobs: - 8.2 - 8.3 sylius: - - 1.12.0 - - 1.13.0 - - 1.14.0 + - 2.0.0 symfony: - - 6.4 + - 7.1 + - 7.2 node: - - 14.x + - 20.x env: APP_ENV: test package-name: synolia/sylius-mail-tester-plugin diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 30982a4..30b6106 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,9 +6,9 @@ From the plugin root directory, run the following commands: $ make install -e SYLIUS_VERSION=XX SYMFONY_VERSION=YY PHP_VERSION=ZZ ``` -Default values : XX=1.12.0 and YY=6.1 and ZZ=8.1 +Default values : XX=2.0 and YY=7.1 and ZZ=8.3 -To be able to setup the plugin database, remember to configure you database credentials +To be able to set up the plugin database, remember to configure you database credentials in `install/Application/.env.local` and `install/Application/.env.test.local`. To reset test environment: @@ -22,7 +22,7 @@ $ make reset - GrumPHP (see configuration [grumphp.yml](grumphp.yml).) - GrumPHP is executed by the Git pre-commit hook, but you can launch it manualy with : + GrumPHP is executed by the Git pre-commit hook, but you can launch it manually with : ```bash $ make grumphp diff --git a/Makefile b/Makefile index f6d1191..3ad5233 100644 --- a/Makefile +++ b/Makefile @@ -7,9 +7,9 @@ CONSOLE=cd ${TEST_DIRECTORY} && php bin/console -e test COMPOSER=cd ${TEST_DIRECTORY} && composer YARN=cd ${TEST_DIRECTORY} && yarn -SYLIUS_VERSION=1.14.0 -SYMFONY_VERSION=6.4 -PHP_VERSION=8.2 +SYLIUS_VERSION=2.0 +SYMFONY_VERSION=7.1 +PHP_VERSION=8.3 PLUGIN_NAME=synolia/sylius-mail-tester-plugin ### @@ -87,7 +87,7 @@ grumphp: ## Run GrumPHP vendor/bin/grumphp run help: SHELL=/bin/bash -help: ## Dislay this help +help: ## Display this help @IFS=$$'\n'; for line in `grep -h -E '^[a-zA-Z_#-]+:?.*?##.*$$' $(MAKEFILE_LIST)`; do if [ "$${line:0:2}" = "##" ]; then \ echo $$line | awk 'BEGIN {FS = "## "}; {printf "\033[33m %s\033[0m\n", $$2}'; else \ echo $$line | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m%s\n", $$1, $$2}'; fi; \ diff --git a/README.md b/README.md index 5ab0997..ec9e350 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ | | Version | |:-------|:--------| | PHP | ^8.2 | -| Sylius | ^1.12 | +| Sylius | ~2.0 | ## Installation @@ -51,7 +51,7 @@ ```yaml synolia_mail_tester: - resource: "@SynoliaSyliusMailTesterPlugin/Resources/config/admin_routing.yaml" + resource: "@SynoliaSyliusMailTesterPlugin/config/routes/admin_routing.yaml" prefix: '/%sylius_admin.path_name%' ``` diff --git a/composer.json b/composer.json index 56c8bb7..14c4eea 100644 --- a/composer.json +++ b/composer.json @@ -12,8 +12,8 @@ "require": { "php": "^8.2", "fakerphp/faker": "^1.10", - "sylius/sylius": "^1.12", - "symfony/framework-bundle": "^6.4", + "sylius/sylius": "~2.0.0", + "symfony/framework-bundle": "^6.4 || ^7.1", "symfony/service-contracts": "^3.5", "webmozart/assert": "^1.11" }, @@ -47,11 +47,11 @@ "seld/jsonlint": "^1.11", "squizlabs/php_codesniffer": "^3.11", "sylius-labs/coding-standard": "^4.3", - "symfony/browser-kit": "^6.4", - "symfony/debug-bundle": "^6.4", - "symfony/dotenv": "^6.4", - "symfony/lock": "^6.4", - "symfony/web-profiler-bundle": "^6.4" + "symfony/browser-kit": "^6.4 || ^7.1", + "symfony/debug-bundle": "^6.4 || ^7.1", + "symfony/dotenv": "^6.4 || ^7.1", + "symfony/lock": "^6.4 || ^7.1", + "symfony/web-profiler-bundle": "^6.4 || ^7.1" }, "prefer-stable": true, "autoload": { @@ -64,9 +64,10 @@ "sort-packages": true, "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true, - "symfony/thanks": true, + "php-http/discovery": true, "phpro/grumphp": true, - "phpstan/extension-installer": true + "phpstan/extension-installer": true, + "symfony/thanks": true } }, "scripts": { diff --git a/src/Resources/config/admin_routing.yaml b/config/routes/admin_routing.yaml similarity index 75% rename from src/Resources/config/admin_routing.yaml rename to config/routes/admin_routing.yaml index 48c1ea4..a3119aa 100644 --- a/src/Resources/config/admin_routing.yaml +++ b/config/routes/admin_routing.yaml @@ -1,5 +1,5 @@ controllers: resource: - path: ../../Controller/ + path: ../../src/Controller/ namespace: Synolia\SyliusMailTesterPlugin\Controller type: attribute diff --git a/src/Resources/config/services.yaml b/config/services.yaml similarity index 53% rename from src/Resources/config/services.yaml rename to config/services.yaml index ef57ccb..1a6c541 100644 --- a/src/Resources/config/services.yaml +++ b/config/services.yaml @@ -4,5 +4,5 @@ services: autoconfigure: true Synolia\SyliusMailTesterPlugin\: - resource: '../../*' - exclude: '../../{Fixture,SynoliaSyliusMailTesterPlugin.php}' + resource: '../src/*' + exclude: '../src/{Fixture,SynoliaSyliusMailTesterPlugin.php}' diff --git a/install/Application/config/routes/mailtester.yaml b/install/Application/config/routes/mailtester.yaml index 8c69b97..3bf1f06 100644 --- a/install/Application/config/routes/mailtester.yaml +++ b/install/Application/config/routes/mailtester.yaml @@ -1,3 +1,3 @@ synolia_mail_tester: - resource: "@SynoliaSyliusMailTesterPlugin/Resources/config/admin_routing.yaml" + resource: "@SynoliaSyliusMailTesterPlugin/config/routes/admin_routing.yaml" prefix: '/%sylius_admin.path_name%' diff --git a/ruleset/rector.php b/ruleset/rector.php index 076abf5..04b9781 100644 --- a/ruleset/rector.php +++ b/ruleset/rector.php @@ -22,11 +22,8 @@ ) ->withTypeCoverageLevel(0) ->withSets([ - SymfonySetList::SYMFONY_60, - SymfonySetList::SYMFONY_61, - SymfonySetList::SYMFONY_62, - SymfonySetList::SYMFONY_63, - SymfonySetList::SYMFONY_64, + SymfonySetList::SYMFONY_71, + SymfonySetList::SYMFONY_72, SetList::CODE_QUALITY, SetList::DEAD_CODE, ]); diff --git a/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php b/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php index 8920793..36f8bc6 100644 --- a/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php +++ b/src/DependencyInjection/SynoliaSyliusMailTesterExtension.php @@ -18,7 +18,7 @@ final class SynoliaSyliusMailTesterExtension extends Extension */ public function load(array $configs, ContainerBuilder $container): void { - $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); + $loader = new YamlFileLoader($container, new FileLocator(\dirname(__DIR__, 2) . '/config')); $loader->load('services.yaml'); diff --git a/src/SynoliaSyliusMailTesterPlugin.php b/src/SynoliaSyliusMailTesterPlugin.php index 7ec7a3d..c1d5a2f 100644 --- a/src/SynoliaSyliusMailTesterPlugin.php +++ b/src/SynoliaSyliusMailTesterPlugin.php @@ -10,4 +10,9 @@ final class SynoliaSyliusMailTesterPlugin extends Bundle { use SyliusPluginTrait; + + public function getPath(): string + { + return \dirname(__DIR__); + } } diff --git a/src/Resources/views/Admin/MailTester/mail_tester.html.twig b/templates/Admin/MailTester/mail_tester.html.twig similarity index 100% rename from src/Resources/views/Admin/MailTester/mail_tester.html.twig rename to templates/Admin/MailTester/mail_tester.html.twig diff --git a/src/Resources/translations/messages.en.yml b/translations/messages.en.yml similarity index 100% rename from src/Resources/translations/messages.en.yml rename to translations/messages.en.yml diff --git a/src/Resources/translations/messages.fr.yml b/translations/messages.fr.yml similarity index 100% rename from src/Resources/translations/messages.fr.yml rename to translations/messages.fr.yml From d0c166bfeb147d178fb6d4b83ca2d431a60ed477 Mon Sep 17 00:00:00 2001 From: maxperei Date: Fri, 14 Mar 2025 09:54:32 +0100 Subject: [PATCH 02/11] fix(formtype): remove deprecated reset pin > see Sylius/Sylius@16ec230f6765e21a564f3076be47af54c0b6c401 --- src/Form/Type/PasswordTokenResetType.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Form/Type/PasswordTokenResetType.php b/src/Form/Type/PasswordTokenResetType.php index a28ddaa..155fc29 100644 --- a/src/Form/Type/PasswordTokenResetType.php +++ b/src/Form/Type/PasswordTokenResetType.php @@ -20,7 +20,6 @@ final class PasswordTokenResetType extends AbstractMultipleKeysType protected static $syliusEmailKeys = [ Emails::PASSWORD_RESET, UserBundleEmails::RESET_PASSWORD_TOKEN, - UserBundleEmails::RESET_PASSWORD_PIN, ]; public function __construct( From 26a908bc89c39a6223324ad2c615b7da4310fb8c Mon Sep 17 00:00:00 2001 From: maxperei Date: Fri, 14 Mar 2025 11:17:29 +0100 Subject: [PATCH 03/11] feat(layout): transpose admin controls into twig hooks --- config/config.yaml | 2 + .../twig_hooks/admin/mailtester/update.yaml | 38 +++++++++++++++++++ .../config/packages/mailtester.yaml | 2 + src/Controller/MailTesterController.php | 4 +- src/Form/Type/MailTesterType.php | 11 ++---- .../Admin/MailTester/mail_tester.html.twig | 28 -------------- .../admin/mailtester/content/form.html.twig | 25 ++++++++++++ .../content/header/breadcrumbs.html.twig | 7 ++++ templates/admin/mailtester/layout.html.twig | 11 ++++++ tests/app/config/packages/mailtester.yaml | 2 + 10 files changed, 93 insertions(+), 37 deletions(-) create mode 100644 config/config.yaml create mode 100644 config/twig_hooks/admin/mailtester/update.yaml create mode 100644 install/Application/config/packages/mailtester.yaml delete mode 100644 templates/Admin/MailTester/mail_tester.html.twig create mode 100644 templates/admin/mailtester/content/form.html.twig create mode 100644 templates/admin/mailtester/content/header/breadcrumbs.html.twig create mode 100644 templates/admin/mailtester/layout.html.twig create mode 100644 tests/app/config/packages/mailtester.yaml diff --git a/config/config.yaml b/config/config.yaml new file mode 100644 index 0000000..ebd6604 --- /dev/null +++ b/config/config.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "@SynoliaSyliusMailTesterPlugin/config/twig_hooks/**/*.yaml" } \ No newline at end of file diff --git a/config/twig_hooks/admin/mailtester/update.yaml b/config/twig_hooks/admin/mailtester/update.yaml new file mode 100644 index 0000000..ffbd9e8 --- /dev/null +++ b/config/twig_hooks/admin/mailtester/update.yaml @@ -0,0 +1,38 @@ +sylius_twig_hooks: + hooks: + 'synolia.sylius_admin.mailtester': + sidebar: + template: '@SyliusAdmin/shared/crud/common/sidebar.html.twig' + priority: 200 + navbar: + template: '@SyliusAdmin/shared/crud/common/navbar.html.twig' + priority: 100 + content: + template: '@SyliusAdmin/shared/crud/common/content.html.twig' + priority: 0 + 'synolia.sylius_admin.mailtester.content': + flashes: + template: '@SyliusAdmin/shared/crud/common/content/flashes.html.twig' + priority: 400 + header: + template: '@SyliusAdmin/shared/crud/common/content/header.html.twig' + priority: 300 + form: + template: '@SynoliaSyliusMailTesterPlugin/admin/mailtester/content/form.html.twig' + priority: 200 + footer: + template: '@SyliusAdmin/shared/crud/common/content/footer.html.twig' + priority: 100 + 'synolia.sylius_admin.mailtester.content.header': + breadcrumbs: + template: '@SynoliaSyliusMailTesterPlugin/admin/mailtester/content/header/breadcrumbs.html.twig' + priority: 100 + title_block: + template: '@SyliusAdmin/shared/crud/common/content/header/title_block.html.twig' + priority: 0 + 'synolia.sylius_admin.mailtester.content.header.title_block': + title: + template: '@SyliusAdmin/shared/crud/common/content/header/title_block/title.html.twig' + configuration: + title: 'sylius.menu.admin.main.configuration.mail_tester' + priority: 100 \ No newline at end of file diff --git a/install/Application/config/packages/mailtester.yaml b/install/Application/config/packages/mailtester.yaml new file mode 100644 index 0000000..90562f5 --- /dev/null +++ b/install/Application/config/packages/mailtester.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "@SynoliaSyliusMailTesterPlugin/config/config.yaml" } \ No newline at end of file diff --git a/src/Controller/MailTesterController.php b/src/Controller/MailTesterController.php index de0ee9b..7eca716 100644 --- a/src/Controller/MailTesterController.php +++ b/src/Controller/MailTesterController.php @@ -59,14 +59,14 @@ public function mailTester(Request $request, SenderInterface $sender): Response 'recipient' => $mailTester['recipient'], ]); - return $this->render('@SynoliaSyliusMailTesterPlugin/Admin/MailTester/mail_tester.html.twig', ['form' => $form]); + return $this->render('@SynoliaSyliusMailTesterPlugin/admin/mailtester/layout.html.twig', ['form' => $form]); } if (isset($mailTester['submit']) && $form->isValid()) { $this->sendMail($request, $mailTester, $sender, $form); } - return $this->render('@SynoliaSyliusMailTesterPlugin/Admin/MailTester/mail_tester.html.twig', ['form' => $form]); + return $this->render('@SynoliaSyliusMailTesterPlugin/admin/mailtester/layout.html.twig', ['form' => $form]); } private function sendMail(Request $request, array $mailTester, SenderInterface $sender, FormInterface $form): void diff --git a/src/Form/Type/MailTesterType.php b/src/Form/Type/MailTesterType.php index d803c61..6e8b263 100644 --- a/src/Form/Type/MailTesterType.php +++ b/src/Form/Type/MailTesterType.php @@ -37,7 +37,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void } $builder->add('change_form_subject', SubmitType::class, [ - 'attr' => ['class' => 'ui icon secondary button'], 'label' => 'sylius.ui.admin.mail_tester.change_form_subject', ]); @@ -53,14 +52,14 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $builder->add( $code, $subject::class, - ['label_attr' => ['class' => 'ui massive label']], + ['label_attr' => ['class' => 'fs-2']], ); } } else { $builder->add( $subject->getCode(), $subject::class, - ['label_attr' => ['class' => 'ui massive label']], + ['label_attr' => ['class' => 'fs-2']], ); } } @@ -68,8 +67,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'submit', SubmitType::class, [ - 'attr' => ['class' => 'ui icon primary button'], - 'label' => 'sylius.ui.admin.mail_tester.submit', ], + 'label' => 'sylius.ui.admin.mail_tester.submit'], ); } @@ -83,8 +81,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'submit', SubmitType::class, [ - 'attr' => ['class' => 'ui icon primary button'], - 'label' => 'sylius.ui.admin.mail_tester.submit', ], + 'label' => 'sylius.ui.admin.mail_tester.submit'], ) ; } diff --git a/templates/Admin/MailTester/mail_tester.html.twig b/templates/Admin/MailTester/mail_tester.html.twig deleted file mode 100644 index 4e6ac0c..0000000 --- a/templates/Admin/MailTester/mail_tester.html.twig +++ /dev/null @@ -1,28 +0,0 @@ -{% extends '@SyliusAdmin/layout.html.twig' %} - -{% import '@SyliusUi/Macro/headers.html.twig' as headers %} -{% import '@SyliusUi/Macro/buttons.html.twig' as buttons %} - -{% block title %}{{ 'sylius.menu.admin.main.configuration.mail_tester'|trans }} {{ parent() }}{% endblock %} - -{% form_theme form '@SyliusAdmin/Form/theme.html.twig' %} - -{% block content %} - {{ headers.default('sylius.menu.admin.main.configuration.mail_tester'|trans, 'mail') }} - - {{ form_start(form, {'attr': {'class': 'ui loadable form', 'novalidate': 'novalidate'}}) }} -
- - {{ form_row(form.recipient) }} - {{ form_row(form.subjects) }} - {{ form_row(form.localeCode) }} - {{ form_row(form.channel) }} - {{ form_row(form.change_form_subject, {'attr': {'style': 'margin-bottom: 20px'}}) }} - - {{ form_widget(form) }} - {% if not form._token.isRendered %} - {{ form_row(form._token) }} - {% endif %} -
- {{ form_end(form, {'render_rest': false}) }} -{% endblock %} diff --git a/templates/admin/mailtester/content/form.html.twig b/templates/admin/mailtester/content/form.html.twig new file mode 100644 index 0000000..90d568a --- /dev/null +++ b/templates/admin/mailtester/content/form.html.twig @@ -0,0 +1,25 @@ +{% if form is not defined %} + {% set form = hookable_metadata.context.form %} +{% endif %} + +{% form_theme form '@SyliusAdmin/shared/form_theme.html.twig' %} + +
+ {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }} +
+
+ + {{ form_row(form.recipient) }} + {{ form_row(form.subjects) }} + {{ form_row(form.localeCode) }} + {{ form_row(form.channel) }} + {{ form_row(form.change_form_subject, {'attr': {'class': 'mb-3'}}) }} + + {{ form_widget(form) }} + {% if not form._token.isRendered %} + {{ form_row(form._token) }} + {% endif %} +
+
+ {{ form_end(form, {'render_rest': false}) }} +
\ No newline at end of file diff --git a/templates/admin/mailtester/content/header/breadcrumbs.html.twig b/templates/admin/mailtester/content/header/breadcrumbs.html.twig new file mode 100644 index 0000000..0359f27 --- /dev/null +++ b/templates/admin/mailtester/content/header/breadcrumbs.html.twig @@ -0,0 +1,7 @@ +{% from '@SyliusAdmin/shared/helper/breadcrumbs.html.twig' import breadcrumbs %} + +{{ breadcrumbs([ + {name: 'sylius.ui.dashboard', url: path('sylius_admin_dashboard'), active: false}, + {name: 'sylius.menu.admin.main.configuration.mail_tester'|trans, active: false}, + {name: 'sylius.ui.edit'|trans, active: false}, +]) }} \ No newline at end of file diff --git a/templates/admin/mailtester/layout.html.twig b/templates/admin/mailtester/layout.html.twig new file mode 100644 index 0000000..2b931c9 --- /dev/null +++ b/templates/admin/mailtester/layout.html.twig @@ -0,0 +1,11 @@ +{% extends '@SyliusAdmin/shared/layout/base.html.twig' %} + +{% block title %} + {{ 'sylius.menu.admin.main.configuration.mail_tester'|trans }} +{% endblock %} + +{% block body %} +
+ {% hook 'synolia.sylius_admin.mailtester' %} +
+{% endblock %} diff --git a/tests/app/config/packages/mailtester.yaml b/tests/app/config/packages/mailtester.yaml new file mode 100644 index 0000000..90562f5 --- /dev/null +++ b/tests/app/config/packages/mailtester.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "@SynoliaSyliusMailTesterPlugin/config/config.yaml" } \ No newline at end of file From f7a7cf784f69ccf423701449334b8e1cffcbcc82 Mon Sep 17 00:00:00 2001 From: maxperei Date: Fri, 14 Mar 2025 11:22:48 +0100 Subject: [PATCH 04/11] docs(capture): update images --- etc/capture-email.png | Bin 29468 -> 24603 bytes etc/capture.png | Bin 25613 -> 46728 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/etc/capture-email.png b/etc/capture-email.png index 3c990cd27d22fcf9eb0a4217c20934ac31dfb6f6..2f2c9d7d141f5f43f4c1d8677217c9df09a2e9aa 100644 GIT binary patch literal 24603 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
op%)$=Ub8#c6&(--jQgAT_;2!I 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 Npf2bEPW#cT{{1N diff --git a/etc/capture.png b/etc/capture.png index f6b4f165d83eb2207e987cda2edfd3b1638b8e83..0675ab25ff696fd0744e07e807f2bec7861e6a56 100644 GIT binary patch literal 46728 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 literal 25613 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 V{IWN-fAdg-%a730bw6CV`5#*tJPQB- From 3c0b6e09c3b1b95867a6d14f11e29073e48d7e96 Mon Sep 17 00:00:00 2001 From: maxperei Date: Fri, 14 Mar 2025 16:33:57 +0100 Subject: [PATCH 05/11] tests(phpunit): remove deprecated reset pin email --- tests/PHPUnit/Resolver/FormTypeResolverTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/PHPUnit/Resolver/FormTypeResolverTest.php b/tests/PHPUnit/Resolver/FormTypeResolverTest.php index a308754..44b02d5 100644 --- a/tests/PHPUnit/Resolver/FormTypeResolverTest.php +++ b/tests/PHPUnit/Resolver/FormTypeResolverTest.php @@ -59,7 +59,6 @@ public function provideEmailKeyAndExpectedForm(): \Generator yield 'Order confirmation resend' => [Emails::ORDER_CONFIRMATION_RESENT, \Synolia\SyliusMailTesterPlugin\Form\Type\OrderConfirmationType::class]; yield 'Password reset' => [Emails::PASSWORD_RESET, \Synolia\SyliusMailTesterPlugin\Form\Type\PasswordTokenResetType::class]; yield 'Password reset token' => [UserBundleEmails::RESET_PASSWORD_TOKEN, \Synolia\SyliusMailTesterPlugin\Form\Type\PasswordTokenResetType::class]; - yield 'Password reset pin' => [UserBundleEmails::RESET_PASSWORD_PIN, \Synolia\SyliusMailTesterPlugin\Form\Type\PasswordTokenResetType::class]; yield 'Shipment confirmation' => [Emails::SHIPMENT_CONFIRMATION, \Synolia\SyliusMailTesterPlugin\Form\Type\ShipmentConfirmation::class]; yield 'User Registration' => [Emails::USER_REGISTRATION, \Synolia\SyliusMailTesterPlugin\Form\Type\UserRegistrationType::class]; yield 'Token verification' => [UserBundleEmails::EMAIL_VERIFICATION_TOKEN, \Synolia\SyliusMailTesterPlugin\Form\Type\VerificationTokenType::class]; From 50f26e7149dbdb3d67dfde42a44d3deff95ab0dc Mon Sep 17 00:00:00 2001 From: maxperei Date: Fri, 14 Mar 2025 16:35:03 +0100 Subject: [PATCH 06/11] tests(behat): update notification checker alias --- .../Context/Ui/Admin/MailTesterContext.php | 35 +++++-------------- tests/Behat/Resources/services.yaml | 2 -- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/tests/Behat/Context/Ui/Admin/MailTesterContext.php b/tests/Behat/Context/Ui/Admin/MailTesterContext.php index 8b1975b..79c8e62 100644 --- a/tests/Behat/Context/Ui/Admin/MailTesterContext.php +++ b/tests/Behat/Context/Ui/Admin/MailTesterContext.php @@ -10,40 +10,21 @@ use Sylius\Behat\NotificationType; use Sylius\Behat\Service\NotificationCheckerInterface; use Sylius\Behat\Service\Resolver\CurrentPageResolverInterface; -use Symfony\Contracts\Translation\TranslatorInterface; +use Symfony\Component\DependencyInjection\Attribute\Autowire; use Synolia\SyliusMailTesterPlugin\DataRetriever\EmailKeysDataRetriever; use Tests\Synolia\SyliusMailTesterPlugin\Behat\Page\Admin\MailTester\IndexPageInterface; use Webmozart\Assert\Assert; final class MailTesterContext implements Context { - /** @var IndexPageInterface */ - private $indexPage; - - /** @var CurrentPageResolverInterface */ - private $currentPageResolver; - - /** @var EmailKeysDataRetriever */ - private $emailKeysDataRetriever; - - /** @var NotificationCheckerInterface */ - private $notificationChecker; - - /** @var TranslatorInterface */ - private $translator; - public function __construct( - IndexPageInterface $indexPage, - CurrentPageResolverInterface $currentPageResolver, - EmailKeysDataRetriever $emailKeysDataRetriever, - NotificationCheckerInterface $notificationChecker, - TranslatorInterface $translator, + private IndexPageInterface $indexPage, + #[Autowire('@sylius.behat.current_page_resolver')] + private CurrentPageResolverInterface $currentPageResolver, + private EmailKeysDataRetriever $emailKeysDataRetriever, + #[Autowire('@sylius.behat.notification_checker.admin')] + private NotificationCheckerInterface $notificationChecker, ) { - $this->indexPage = $indexPage; - $this->currentPageResolver = $currentPageResolver; - $this->emailKeysDataRetriever = $emailKeysDataRetriever; - $this->notificationChecker = $notificationChecker; - $this->translator = $translator; } /** @@ -182,7 +163,7 @@ public function theSubjectsShouldHaveEverySubjects(): void public function theEmailHasBeenSuccessfullySend(): void { $this->notificationChecker->checkNotification( - $this->translator->trans('sylius.ui.admin.mail_tester.success'), + 'Mail successfully sent', NotificationType::success(), ); } diff --git a/tests/Behat/Resources/services.yaml b/tests/Behat/Resources/services.yaml index 0a57bb1..6bca5a4 100644 --- a/tests/Behat/Resources/services.yaml +++ b/tests/Behat/Resources/services.yaml @@ -1,7 +1,5 @@ services: Sylius\Behat\Service\SharedStorageInterface: '@sylius.behat.shared_storage' - Sylius\Behat\Service\Resolver\CurrentPageResolverInterface: '@sylius.behat.current_page_resolver' - Sylius\Behat\Service\NotificationCheckerInterface: '@sylius.behat.notification_checker' synolia_mail_tester_plugin.behat.page.admin.mail_tester.index: class: Tests\Synolia\SyliusMailTesterPlugin\Behat\Page\Admin\MailTester\IndexPage From 378a7cb82631feb0cc0bf8df0f11f42d12620890 Mon Sep 17 00:00:00 2001 From: maxperei Date: Wed, 19 Mar 2025 10:34:35 +0100 Subject: [PATCH 07/11] fix(flashes): use proper translation domain --- src/Controller/MailTesterController.php | 4 +--- translations/flashes.en.yml | 3 +++ translations/flashes.fr.yml | 3 +++ translations/messages.en.yml | 3 +-- translations/messages.fr.yml | 3 +-- 5 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 translations/flashes.en.yml create mode 100644 translations/flashes.fr.yml diff --git a/src/Controller/MailTesterController.php b/src/Controller/MailTesterController.php index 7eca716..ccfce7f 100644 --- a/src/Controller/MailTesterController.php +++ b/src/Controller/MailTesterController.php @@ -13,7 +13,6 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Attribute\AsController; use Symfony\Component\Routing\Attribute\Route; -use Symfony\Contracts\Translation\TranslatorInterface; use Synolia\SyliusMailTesterPlugin\Form\Type\AbstractType; use Synolia\SyliusMailTesterPlugin\Form\Type\ChoiceSubjectsType; use Synolia\SyliusMailTesterPlugin\Form\Type\MailTesterType; @@ -25,7 +24,6 @@ final class MailTesterController extends AbstractController { public function __construct( private readonly FormTypeResolver $formTypeResolver, - private readonly TranslatorInterface $translator, #[Autowire(param: 'sylius.mailer.emails')] private readonly array $emails, ) { @@ -96,7 +94,7 @@ private function sendMail(Request $request, array $mailTester, SenderInterface $ $sender->send($formData['subjects'], [$formData['recipient']], $this->getMailData($form, 'form_subject_chosen'), $this->getAttachments($form)); } - $request->getSession()->getFlashBag()->add('success', $this->translator->trans('sylius.ui.admin.mail_tester.success')); + $request->getSession()->getFlashBag()->add('success', 'synolia_mail_tester.admin.success'); } catch (\Exception $exception) { $request->getSession()->getFlashBag()->add('error', $exception->getMessage()); } diff --git a/translations/flashes.en.yml b/translations/flashes.en.yml new file mode 100644 index 0000000..895161b --- /dev/null +++ b/translations/flashes.en.yml @@ -0,0 +1,3 @@ +synolia_mail_tester: + admin: + success: Mail successfully sent diff --git a/translations/flashes.fr.yml b/translations/flashes.fr.yml new file mode 100644 index 0000000..a721a33 --- /dev/null +++ b/translations/flashes.fr.yml @@ -0,0 +1,3 @@ +synolia_mail_tester: + admin: + success: L'email a été envoyé avec succès diff --git a/translations/messages.en.yml b/translations/messages.en.yml index f55ff39..8a72fbd 100644 --- a/translations/messages.en.yml +++ b/translations/messages.en.yml @@ -5,8 +5,7 @@ sylius: recipient: Recipient submit: Send change_form_subject: Choose subject - success: Mail successfully send - every_subjects: Every subjects + every_subjects: All subjects menu: admin: main: diff --git a/translations/messages.fr.yml b/translations/messages.fr.yml index aafeb76..5be2ecf 100644 --- a/translations/messages.fr.yml +++ b/translations/messages.fr.yml @@ -5,8 +5,7 @@ sylius: recipient: Destinataire submit: Envoyer change_form_subject: Choisir le sujet - success: Envoie du mail avec succès - every_subjects: Tout les sujets + every_subjects: Tous les sujets menu: admin: main: From d3f679c415ce7f5bd4245906ff62d04afae970bb Mon Sep 17 00:00:00 2001 From: maxperei Date: Wed, 19 Mar 2025 10:35:28 +0100 Subject: [PATCH 08/11] tests(mailer): use new contact request template namespace --- tests/data/config/packages/test/sylius_mailer.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/config/packages/test/sylius_mailer.yaml b/tests/data/config/packages/test/sylius_mailer.yaml index c8a55a8..105c8eb 100644 --- a/tests/data/config/packages/test/sylius_mailer.yaml +++ b/tests/data/config/packages/test/sylius_mailer.yaml @@ -4,4 +4,4 @@ sylius_mailer: enabled: false my_dummy_form_type: subject: dummy.test - template: "@SyliusShop/Email/contactRequest.html.twig" + template: "@SyliusCore/Email/contactRequest.html.twig" From 4501e887c4c0df6f40ee06b210f3bc8f300d9b1d Mon Sep 17 00:00:00 2001 From: maxperei Date: Wed, 19 Mar 2025 12:20:12 +0100 Subject: [PATCH 09/11] fix(flashes): rollback messages such as ci do not resolve translations --- src/Controller/MailTesterController.php | 4 +++- tests/Behat/Context/Ui/Admin/MailTesterContext.php | 4 +++- translations/flashes.en.yml | 3 --- translations/flashes.fr.yml | 3 --- translations/messages.en.yml | 1 + translations/messages.fr.yml | 1 + 6 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 translations/flashes.en.yml delete mode 100644 translations/flashes.fr.yml diff --git a/src/Controller/MailTesterController.php b/src/Controller/MailTesterController.php index ccfce7f..7eca716 100644 --- a/src/Controller/MailTesterController.php +++ b/src/Controller/MailTesterController.php @@ -13,6 +13,7 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Attribute\AsController; use Symfony\Component\Routing\Attribute\Route; +use Symfony\Contracts\Translation\TranslatorInterface; use Synolia\SyliusMailTesterPlugin\Form\Type\AbstractType; use Synolia\SyliusMailTesterPlugin\Form\Type\ChoiceSubjectsType; use Synolia\SyliusMailTesterPlugin\Form\Type\MailTesterType; @@ -24,6 +25,7 @@ final class MailTesterController extends AbstractController { public function __construct( private readonly FormTypeResolver $formTypeResolver, + private readonly TranslatorInterface $translator, #[Autowire(param: 'sylius.mailer.emails')] private readonly array $emails, ) { @@ -94,7 +96,7 @@ private function sendMail(Request $request, array $mailTester, SenderInterface $ $sender->send($formData['subjects'], [$formData['recipient']], $this->getMailData($form, 'form_subject_chosen'), $this->getAttachments($form)); } - $request->getSession()->getFlashBag()->add('success', 'synolia_mail_tester.admin.success'); + $request->getSession()->getFlashBag()->add('success', $this->translator->trans('sylius.ui.admin.mail_tester.success')); } catch (\Exception $exception) { $request->getSession()->getFlashBag()->add('error', $exception->getMessage()); } diff --git a/tests/Behat/Context/Ui/Admin/MailTesterContext.php b/tests/Behat/Context/Ui/Admin/MailTesterContext.php index 79c8e62..ac057d6 100644 --- a/tests/Behat/Context/Ui/Admin/MailTesterContext.php +++ b/tests/Behat/Context/Ui/Admin/MailTesterContext.php @@ -11,6 +11,7 @@ use Sylius\Behat\Service\NotificationCheckerInterface; use Sylius\Behat\Service\Resolver\CurrentPageResolverInterface; use Symfony\Component\DependencyInjection\Attribute\Autowire; +use Symfony\Contracts\Translation\TranslatorInterface; use Synolia\SyliusMailTesterPlugin\DataRetriever\EmailKeysDataRetriever; use Tests\Synolia\SyliusMailTesterPlugin\Behat\Page\Admin\MailTester\IndexPageInterface; use Webmozart\Assert\Assert; @@ -24,6 +25,7 @@ public function __construct( private EmailKeysDataRetriever $emailKeysDataRetriever, #[Autowire('@sylius.behat.notification_checker.admin')] private NotificationCheckerInterface $notificationChecker, + private TranslatorInterface $translator, ) { } @@ -163,7 +165,7 @@ public function theSubjectsShouldHaveEverySubjects(): void public function theEmailHasBeenSuccessfullySend(): void { $this->notificationChecker->checkNotification( - 'Mail successfully sent', + $this->translator->trans('sylius.ui.admin.mail_tester.success'), NotificationType::success(), ); } diff --git a/translations/flashes.en.yml b/translations/flashes.en.yml deleted file mode 100644 index 895161b..0000000 --- a/translations/flashes.en.yml +++ /dev/null @@ -1,3 +0,0 @@ -synolia_mail_tester: - admin: - success: Mail successfully sent diff --git a/translations/flashes.fr.yml b/translations/flashes.fr.yml deleted file mode 100644 index a721a33..0000000 --- a/translations/flashes.fr.yml +++ /dev/null @@ -1,3 +0,0 @@ -synolia_mail_tester: - admin: - success: L'email a été envoyé avec succès diff --git a/translations/messages.en.yml b/translations/messages.en.yml index 8a72fbd..cc6c095 100644 --- a/translations/messages.en.yml +++ b/translations/messages.en.yml @@ -5,6 +5,7 @@ sylius: recipient: Recipient submit: Send change_form_subject: Choose subject + success: Mail successfully sent every_subjects: All subjects menu: admin: diff --git a/translations/messages.fr.yml b/translations/messages.fr.yml index 5be2ecf..507c38c 100644 --- a/translations/messages.fr.yml +++ b/translations/messages.fr.yml @@ -5,6 +5,7 @@ sylius: recipient: Destinataire submit: Envoyer change_form_subject: Choisir le sujet + success: L'email a été envoyé avec succès every_subjects: Tous les sujets menu: admin: From 0892914c768ede40e0492f06fdb5e861701a3f2e Mon Sep 17 00:00:00 2001 From: maxperei Date: Wed, 19 Mar 2025 12:03:47 +0100 Subject: [PATCH 10/11] fix(ci): routing must be overridden from install folder --- .../config/routes/{mailtester.yaml => sylius_mail_tester.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename install/Application/config/routes/{mailtester.yaml => sylius_mail_tester.yaml} (100%) diff --git a/install/Application/config/routes/mailtester.yaml b/install/Application/config/routes/sylius_mail_tester.yaml similarity index 100% rename from install/Application/config/routes/mailtester.yaml rename to install/Application/config/routes/sylius_mail_tester.yaml From 758c0bb24e9dfe6c1a190f5ece8cfa5c2e1c7bc5 Mon Sep 17 00:00:00 2001 From: maxperei Date: Fri, 4 Apr 2025 16:24:04 +0200 Subject: [PATCH 11/11] fix(deps): lock dev versions and keep sf 6.4 --- .github/workflows/analysis.yaml | 2 +- .github/workflows/sylius.yaml | 2 +- composer.json | 69 ++++++++++++++++----------------- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/.github/workflows/analysis.yaml b/.github/workflows/analysis.yaml index 08160c3..7bdac1c 100644 --- a/.github/workflows/analysis.yaml +++ b/.github/workflows/analysis.yaml @@ -19,7 +19,7 @@ jobs: - 8.2 - 8.3 symfony: - - '7.1.*' + - '6.4.*' - '7.2.*' env: APP_ENV: test diff --git a/.github/workflows/sylius.yaml b/.github/workflows/sylius.yaml index 55d1d6d..4ba909e 100644 --- a/.github/workflows/sylius.yaml +++ b/.github/workflows/sylius.yaml @@ -21,7 +21,7 @@ jobs: sylius: - 2.0.0 symfony: - - 7.1 + - 6.4 - 7.2 node: - 20.x diff --git a/composer.json b/composer.json index 14c4eea..8a6d585 100644 --- a/composer.json +++ b/composer.json @@ -12,46 +12,45 @@ "require": { "php": "^8.2", "fakerphp/faker": "^1.10", - "sylius/sylius": "~2.0.0", - "symfony/framework-bundle": "^6.4 || ^7.1", + "sylius/sylius": "^2.0", "symfony/service-contracts": "^3.5", "webmozart/assert": "^1.11" }, "require-dev": { - "behat/behat": "^3.12", - "behat/mink-selenium2-driver": "^1.6", - "dmore/behat-chrome-extension": "^1.4", - "dmore/chrome-mink-driver": "^2.9", - "friends-of-behat/mink": "^1.10", - "friends-of-behat/mink-browserkit-driver": "^1.6", - "friends-of-behat/mink-debug-extension": "^2.1", - "friends-of-behat/mink-extension": "^2.7", - "friends-of-behat/page-object-extension": "^0.3", - "friends-of-behat/symfony-extension": "^2.4", - "friends-of-behat/variadic-extension": "^1.5", + "behat/behat": "3.19.0", + "behat/mink-selenium2-driver": "1.7.0", + "dmore/behat-chrome-extension": "1.4.0", + "dmore/chrome-mink-driver": "2.9.3", + "friends-of-behat/mink": "1.11.0", + "friends-of-behat/mink-browserkit-driver": "1.6.2", + "friends-of-behat/mink-debug-extension": "2.1.0", + "friends-of-behat/mink-extension": "2.7.5", + "friends-of-behat/page-object-extension": "0.3.2", + "friends-of-behat/symfony-extension": "2.6.0", + "friends-of-behat/variadic-extension": "1.6.0", "friendsoftwig/twigcs": "6.4.0", - "j13k/yaml-lint": "^1.1", - "php-parallel-lint/php-parallel-lint": "^1.4", - "phpmd/phpmd": "^2.15.0", - "phpro/grumphp": "^2.9", - "phpspec/phpspec": "^7.3", - "phpstan/extension-installer": "^1.3", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-doctrine": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpstan/phpstan-webmozart-assert": "^2.0", - "phpunit/phpunit": "^9.5", - "povils/phpmnd": "^3.0", - "rector/rector": "^2.0", - "seld/jsonlint": "^1.11", - "squizlabs/php_codesniffer": "^3.11", - "sylius-labs/coding-standard": "^4.3", - "symfony/browser-kit": "^6.4 || ^7.1", - "symfony/debug-bundle": "^6.4 || ^7.1", - "symfony/dotenv": "^6.4 || ^7.1", - "symfony/lock": "^6.4 || ^7.1", - "symfony/web-profiler-bundle": "^6.4 || ^7.1" + "j13k/yaml-lint": "1.1.6", + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpmd/phpmd": "2.15.0", + "phpro/grumphp": "2.11.0", + "phpspec/phpspec": "7.5.0", + "phpstan/extension-installer": "1.4.3", + "phpstan/phpstan": "2.1.8", + "phpstan/phpstan-doctrine": "2.0.2", + "phpstan/phpstan-phpunit": "2.0.4", + "phpstan/phpstan-strict-rules": "2.0.3", + "phpstan/phpstan-webmozart-assert": "2.0.0", + "phpunit/phpunit": "9.6.22", + "povils/phpmnd": "3.5.0", + "rector/rector": "2.0.10", + "seld/jsonlint": "1.11.0", + "squizlabs/php_codesniffer": "3.11.3", + "sylius-labs/coding-standard": "4.4.0", + "symfony/browser-kit": "7.2.4", + "symfony/debug-bundle": "^7.2.0", + "symfony/dotenv": "7.2.0", + "symfony/lock": "7.2.4", + "symfony/web-profiler-bundle": "7.2.4" }, "prefer-stable": true, "autoload": {