diff --git a/composer.json b/composer.json index 4588e6c..b847f51 100644 --- a/composer.json +++ b/composer.json @@ -82,7 +82,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/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..e894d4d 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,7 +51,7 @@ 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'],