From 52b750e6cdec047b63b467730438ceee3ea35011 Mon Sep 17 00:00:00 2001 From: Mateusz Zalewski Date: Thu, 13 Jun 2024 18:42:26 +0200 Subject: [PATCH] Fix dependencies and coding standards --- .github/workflows/build.yaml | 5 ++++- composer.json | 9 ++++++--- psalm.xml | 1 + src/Controller/EditOrderAction.php | 5 ++++- src/Form/Extension/OrderTypeExtension.php | 1 - src/Form/Type/OrderItemType.php | 1 - src/Provider/OldOrderProvider.php | 3 ++- src/Provider/UpdatedOrderProvider.php | 6 +++++- tests/Functional/OrderUpdateTest.php | 7 ++++--- 9 files changed, 26 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c4bbe07..344aa75 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -250,7 +250,10 @@ jobs: run: "(cd tests/Application && bin/console doctrine:schema:validate -vvv)" # The verbose flag will show 'missing' SQL statements, if any - name: "Load fixtures for functional tests" - run: "(cd tests/Application && bin/console doctrine:fixtures:load --no-interaction)" + run: "(cd tests/Application && bin/console sylius:fixtures:load --no-interaction)" + + - name: "Run yarn" + run: "(cd tests/Application && yarn install && yarn build)" - name: "Run phpunit" run: "composer functional-tests" diff --git a/composer.json b/composer.json index 2b9ef04..eeffadb 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,7 @@ ], "require": { "php": ">=8.1", + "doctrine/orm": "^2.0 || ^3.0", "doctrine/persistence": "^2.0 || ^3.0", "sylius/core": "^1.0", "sylius/core-bundle": "^1.0", @@ -18,11 +19,13 @@ "sylius/resource-bundle": "^1.6", "symfony/config": "^5.4 || ^6.4 || ^7.0", "symfony/dependency-injection": "^5.4 || ^6.4 || ^7.0", + "symfony/doctrine-bridge": "^5.4 || ^6.4 || ^7.0", "symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0", "symfony/form": "^5.4 || ^6.4 || ^7.0", "symfony/http-foundation": "^5.4 || ^6.4 || ^7.0", "symfony/http-kernel": "^5.4 || ^6.4 || ^7.0", "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0", + "symfony/routing": "^5.4 || ^6.4 || ^7.0", "webmozart/assert": "^1.11" }, "require-dev": { @@ -39,7 +42,7 @@ "psalm/plugin-phpunit": "^0.18.4", "setono/code-quality-pack": "^2.7", "sylius/sylius": "~1.12.13", - "symfony/browser-kit": "^7.1", + "symfony/browser-kit": "^5.4", "symfony/debug-bundle": "^5.4 || ^6.4 || ^7.0", "symfony/dotenv": "^5.4 || ^6.4 || ^7.0", "symfony/intl": "^5.4 || ^6.4 || ^7.0", @@ -82,7 +85,7 @@ "analyse": "psalm", "check-style": "ecs check", "fix-style": "ecs check --fix", - "unit-tests": "vendor/bin/phpunit tests/Unit/", - "functional-tests": "vendor/bin/phpunit tests/Functional/" + "functional-tests": "vendor/bin/phpunit tests/Functional/", + "unit-tests": "vendor/bin/phpunit tests/Unit/" } } diff --git a/psalm.xml b/psalm.xml index 0357e31..ab9fc1c 100644 --- a/psalm.xml +++ b/psalm.xml @@ -15,6 +15,7 @@ + diff --git a/src/Controller/EditOrderAction.php b/src/Controller/EditOrderAction.php index fad372f..3db3845 100644 --- a/src/Controller/EditOrderAction.php +++ b/src/Controller/EditOrderAction.php @@ -12,6 +12,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; final class EditOrderAction @@ -59,7 +60,9 @@ private function addFlashAndRedirect( int $orderId, ): RedirectResponse { $session = $this->requestStack->getSession(); - $session->getBag('flashes')->add($type, $message); + /** @var FlashBagInterface $flashBag */ + $flashBag = $session->getBag('flashes'); + $flashBag->add($type, $message); return new RedirectResponse($this->router->generate($route, ['id' => $orderId])); } diff --git a/src/Form/Extension/OrderTypeExtension.php b/src/Form/Extension/OrderTypeExtension.php index 3d37446..963e847 100644 --- a/src/Form/Extension/OrderTypeExtension.php +++ b/src/Form/Extension/OrderTypeExtension.php @@ -6,7 +6,6 @@ use Setono\SyliusOrderEditPlugin\Form\Type\OrderItemCollectionType; use Sylius\Bundle\OrderBundle\Form\Type\OrderType; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Form\AbstractTypeExtension; use Symfony\Component\Form\FormBuilderInterface; diff --git a/src/Form/Type/OrderItemType.php b/src/Form/Type/OrderItemType.php index 6fef665..cb1957b 100644 --- a/src/Form/Type/OrderItemType.php +++ b/src/Form/Type/OrderItemType.php @@ -10,7 +10,6 @@ use Sylius\Component\Order\Modifier\OrderItemQuantityModifierInterface; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\Extension\Core\Type\IntegerType; -use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; final class OrderItemType extends AbstractResourceType diff --git a/src/Provider/OldOrderProvider.php b/src/Provider/OldOrderProvider.php index f471069..48f6da3 100644 --- a/src/Provider/OldOrderProvider.php +++ b/src/Provider/OldOrderProvider.php @@ -19,8 +19,9 @@ public function __construct( public function provide(int $orderId): OrderInterface { + /** @var OrderInterface|null $order */ $order = $this->orderRepository->find($orderId); - Assert::notNull($order); + Assert::isInstanceOf($order, OrderInterface::class); $this->orderInventoryOperator->cancel($order); diff --git a/src/Provider/UpdatedOrderProvider.php b/src/Provider/UpdatedOrderProvider.php index db17231..e0b74c1 100644 --- a/src/Provider/UpdatedOrderProvider.php +++ b/src/Provider/UpdatedOrderProvider.php @@ -8,6 +8,7 @@ use Sylius\Component\Core\Model\OrderInterface; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\HttpFoundation\Request; +use Webmozart\Assert\Assert; final class UpdatedOrderProvider { @@ -20,6 +21,9 @@ public function fromRequest(OrderInterface $order, Request $request): OrderInter $form = $this->formFactory->create(OrderType::class, $order, ['validation_groups' => 'sylius']); $form->handleRequest($request); - return $form->getData(); + $data = $form->getData(); + Assert::isInstanceOf($data, OrderInterface::class); + + return $data; } } diff --git a/tests/Functional/OrderUpdateTest.php b/tests/Functional/OrderUpdateTest.php index 26b0734..1fdcbdf 100644 --- a/tests/Functional/OrderUpdateTest.php +++ b/tests/Functional/OrderUpdateTest.php @@ -36,6 +36,7 @@ public function testItUpdatesOrder(): void $this->makeVariantTrackedWithStock(); $order = $this->placeOrderProgramatically(quantity: 5); + /** @var ProductVariantInterface $variant */ $variant = $this->getVariantRepository()->findOneBy(['code' => '000F_office_grey_jeans-variant-0']); $initialHold = $variant->getOnHold(); @@ -50,11 +51,11 @@ public function testItUpdatesOrder(): void self::$client->request( 'PATCH', - sprintf('/admin/orders/%d/update-and-processs', $order->getId()), + sprintf('/admin/orders/%d/update-and-processs', (int) $order->getId()), [], [], ['CONTENT_TYPE' => 'application/json'], - $content + $content, ); self::assertResponseStatusCodeSame(302); @@ -68,7 +69,7 @@ public function testItUpdatesOrder(): void private function placeOrderProgramatically( string $variantCode = '000F_office_grey_jeans-variant-0', - int $quantity = 1 + int $quantity = 1, ): Order { /** @var MessageBusInterface $commandBus */ $commandBus = self::getContainer()->get('sylius.command_bus');