From 538c9e4690984b396915c8f3371571119f4c5c11 Mon Sep 17 00:00:00 2001 From: SirDomin Date: Fri, 26 Mar 2021 08:45:51 +0100 Subject: [PATCH 1/6] behat context added --- ...ct_reviews_on_product_details_page.feature | 2 +- .../Behat/Context/Api/Shop/ProductContext.php | 48 +++++++++++++++++ .../ApiBundle/Resources/config/services.xml | 7 +++ .../Serializer/ProductSerializer.php | 53 +++++++++++++++++++ 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php diff --git a/features/product/viewing_product_reviews/viewing_product_reviews_on_product_details_page.feature b/features/product/viewing_product_reviews/viewing_product_reviews_on_product_details_page.feature index cd7b97d759c..8e09379a169 100644 --- a/features/product/viewing_product_reviews/viewing_product_reviews_on_product_details_page.feature +++ b/features/product/viewing_product_reviews/viewing_product_reviews_on_product_details_page.feature @@ -13,7 +13,7 @@ Feature: Viewing product reviews on product's details page And this product has also a review titled "Classic" and rated 5 added by customer "sir.terry@pratchett.com" And I am a logged in customer - @ui + @ui @api Scenario: Viewing last 3 product reviews on product's details page When I check this product's details Then I should see 3 product reviews diff --git a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php index 6786c72964a..4bf9f27fcb9 100644 --- a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php +++ b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php @@ -83,6 +83,30 @@ public function iSearchForProductsWithName(string $name) $this->client->filter(); } + /** + * @Then I should see :amount product reviews + */ + public function iShouldSeeProductReviews(int $amount): void + { + Assert::count($this->responseChecker->getValue($this->client->getLastResponse(), 'reviews'), $amount); + } + + /** + * @Then I should see reviews titled :titleOne, :titleTwo and :titleThree + */ + public function iShouldSeeReviewsTitledAnd(...$titles): void + { + Assert::true($this->hasReviewsWithTitles($titles)); + } + + /** + * @Then I should not see review titled :title + */ + public function iShouldNotSeeReviewTitled(string $title): void + { + Assert::false($this->hasReviewsWithTitles([$title])); + } + /** * @Then I should see the product :name */ @@ -204,4 +228,28 @@ private function hasProductWithName(array $products, string $name): bool return false; } + + private function hasReviewsWithTitles($titles): bool + { + $productReviews = $this->responseChecker->getValue($this->client->getLastResponse(), 'reviews'); + + foreach ($titles as $title) { + if (!$this->hasKeyWithValue($productReviews, 'title', $title)) { + return false; + } + } + + return true; + } + + private function hasKeyWithValue(array $array, string $key, string $value): bool + { + foreach ($array as $arrayValue) { + if ($arrayValue[$key] === $value) { + return true; + } + } + + return false; + } } diff --git a/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml b/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml index e356bf7ce17..5c1ba31c4fa 100644 --- a/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml +++ b/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml @@ -21,6 +21,7 @@ Sylius\Component\Addressing\Model\AddressInterface + 3 @@ -149,6 +150,12 @@ + + + %sylius.product.product_reviews.limit% + + + diff --git a/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php b/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php new file mode 100644 index 00000000000..4eb1bdb8fd1 --- /dev/null +++ b/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php @@ -0,0 +1,53 @@ +objectNormalizer = $objectNormalizer; + $this->reviewsLimit = $reviewsLimit; + } + + public function normalize($object, ?string $format = null, array $context = []) + { + Assert::isInstanceOf($object, ProductInterface::class); + + $productReviews = $object->getAcceptedReviews(); + $reviewsCount = count($productReviews); + + if ($reviewsCount > $this->reviewsLimit) { + for ($i = 0; $i < $reviewsCount - $this->reviewsLimit; $i++) { + $object->removeReview($productReviews->get($i)); + } + } + + return $this->objectNormalizer->normalize($object, $format, $context); + } + + public function supportsNormalization($data, ?string $format = null, $context = []): bool + { + return $data instanceof ProductInterface && $this->isShopGet($context); + } + + private function isShopGet(array $context): bool + { + return isset($context['item_operation_name']) && ($context['item_operation_name'] === 'shop_get'); + } +} From b587f74179cb8799866cff62bd87b0324b599341 Mon Sep 17 00:00:00 2001 From: SirDomin Date: Fri, 26 Mar 2021 08:50:38 +0100 Subject: [PATCH 2/6] serializer cs fix --- .../ApiBundle/Serializer/ProductSerializer.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php b/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php index 4eb1bdb8fd1..98da98ed0d2 100644 --- a/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php +++ b/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php @@ -1,10 +1,19 @@ reviewsLimit = $reviewsLimit; } - public function normalize($object, ?string $format = null, array $context = []) + public function normalize($object, $format = null, array $context = []) { Assert::isInstanceOf($object, ProductInterface::class); @@ -41,7 +50,7 @@ public function normalize($object, ?string $format = null, array $context = []) return $this->objectNormalizer->normalize($object, $format, $context); } - public function supportsNormalization($data, ?string $format = null, $context = []): bool + public function supportsNormalization($data, $format = null, $context = []): bool { return $data instanceof ProductInterface && $this->isShopGet($context); } From 785da079145946d93af0dbb9cd74df00127b0982 Mon Sep 17 00:00:00 2001 From: SirDomin Date: Fri, 26 Mar 2021 09:11:44 +0100 Subject: [PATCH 3/6] add spec, added id after serialization --- .../Behat/Context/Api/Shop/ProductContext.php | 4 +- .../Serializer/ProductSerializer.php | 5 +- .../spec/Serializer/ProductSerializerSpec.php | 52 +++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php diff --git a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php index 4bf9f27fcb9..eb18cf06b37 100644 --- a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php +++ b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php @@ -94,7 +94,7 @@ public function iShouldSeeProductReviews(int $amount): void /** * @Then I should see reviews titled :titleOne, :titleTwo and :titleThree */ - public function iShouldSeeReviewsTitledAnd(...$titles): void + public function iShouldSeeReviewsTitledAnd(string ...$titles): void { Assert::true($this->hasReviewsWithTitles($titles)); } @@ -229,7 +229,7 @@ private function hasProductWithName(array $products, string $name): bool return false; } - private function hasReviewsWithTitles($titles): bool + private function hasReviewsWithTitles(array $titles): bool { $productReviews = $this->responseChecker->getValue($this->client->getLastResponse(), 'reviews'); diff --git a/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php b/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php index 98da98ed0d2..9c30d37a1c5 100644 --- a/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php +++ b/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php @@ -47,7 +47,10 @@ public function normalize($object, $format = null, array $context = []) } } - return $this->objectNormalizer->normalize($object, $format, $context); + $data = $this->objectNormalizer->normalize($object, $format, $context); + $data['@id'] = $object->getId(); + + return $data; } public function supportsNormalization($data, $format = null, $context = []): bool diff --git a/src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php b/src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php new file mode 100644 index 00000000000..8340476f878 --- /dev/null +++ b/src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php @@ -0,0 +1,52 @@ +beConstructedWith($objectNormalizer, 3); + } + + function it_supports_only_product_interface(): void { + $product = new Product(); + $this->supportsNormalization($product)->shouldReturn(true); + + $order = new Order(); + $this->supportsNormalization($order)->shouldReturn(false); + } + + function it_does_not_serialize_if_item_operation_name_is_not_shop_get(): void { + $product = new Product(); + $this->supportsNormalization($product, null, ['item_operation_name' => 'shop_admin'])->shouldReturn(false); + } + + function it_serializes_product_if_item_operation_name_is_shop_get( + NormalizerInterface $objectNormalizer + ): void { + $product = new Product(); + $product->getId()->willReturn(20); + + $objectNormalizer->normalize($product, null, [])->willReturn([]); + + $this->normalize($product, null, [])->shouldReturn(['@id' => 20]); + } +} From 742b15d22501967a058d9b86fa09a8575f305322 Mon Sep 17 00:00:00 2001 From: SirDomin Date: Mon, 29 Mar 2021 08:52:53 +0200 Subject: [PATCH 4/6] removed serializer, switched to collection instead of subresources --- .../Behat/Context/Api/Shop/ProductContext.php | 39 ++++++----- .../config/services/contexts/api/shop.xml | 2 + .../config/api_resources/ProductReview.xml | 1 + .../ApiBundle/Resources/config/services.xml | 6 -- .../Resources/config/services/filters.xml | 7 ++ .../Serializer/ProductSerializer.php | 65 ------------------- .../spec/Serializer/ProductSerializerSpec.php | 52 --------------- 7 files changed, 33 insertions(+), 139 deletions(-) delete mode 100644 src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php delete mode 100644 src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php diff --git a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php index eb18cf06b37..357fa810b92 100644 --- a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php +++ b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php @@ -13,6 +13,7 @@ namespace Sylius\Behat\Context\Api\Shop; +use ApiPlatform\Core\Api\IriConverterInterface; use Behat\Behat\Context\Context; use Sylius\Behat\Client\ApiClientInterface; use Sylius\Behat\Client\Request; @@ -36,14 +37,24 @@ final class ProductContext implements Context /** @var SharedStorageInterface */ private $sharedStorage; + /** @var ApiClientInterface */ + private $productReviewClient; + + /** @var IriConverterInterface */ + private $iriConverter; + public function __construct( ApiClientInterface $client, ResponseCheckerInterface $responseChecker, - SharedStorageInterface $sharedStorage + SharedStorageInterface $sharedStorage, + ApiClientInterface $productReviewClient, + IriConverterInterface $iriConverter ) { $this->client = $client; $this->responseChecker = $responseChecker; $this->sharedStorage = $sharedStorage; + $this->productReviewClient = $productReviewClient; + $this->iriConverter = $iriConverter; } /** @@ -88,7 +99,16 @@ public function iSearchForProductsWithName(string $name) */ public function iShouldSeeProductReviews(int $amount): void { - Assert::count($this->responseChecker->getValue($this->client->getLastResponse(), 'reviews'), $amount); + /** @var ProductInterface $product */ + $product = $this->sharedStorage->get('product'); + + $this->productReviewClient->index(); + $this->productReviewClient->addFilter('reviewSubject', $this->iriConverter->getIriFromItem($product)); + $this->productReviewClient->addFilter('itemsPerPage', 3); + $this->productReviewClient->addFilter('order[createdAt]', 'desc'); + $this->productReviewClient->filter(); + + Assert::same($this->responseChecker->countCollectionItems($this->productReviewClient->getLastResponse()), $amount); } /** @@ -231,25 +251,12 @@ private function hasProductWithName(array $products, string $name): bool private function hasReviewsWithTitles(array $titles): bool { - $productReviews = $this->responseChecker->getValue($this->client->getLastResponse(), 'reviews'); - foreach ($titles as $title) { - if (!$this->hasKeyWithValue($productReviews, 'title', $title)) { + if (!$this->responseChecker->hasItemWithValue($this->productReviewClient->getLastResponse(), 'title', $title)) { return false; } } return true; } - - private function hasKeyWithValue(array $array, string $key, string $value): bool - { - foreach ($array as $arrayValue) { - if ($arrayValue[$key] === $value) { - return true; - } - } - - return false; - } } diff --git a/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml b/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml index 5700a662d85..aa3928df90c 100644 --- a/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml +++ b/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml @@ -83,6 +83,8 @@ + + diff --git a/src/Sylius/Bundle/ApiBundle/Resources/config/api_resources/ProductReview.xml b/src/Sylius/Bundle/ApiBundle/Resources/config/api_resources/ProductReview.xml index 293d748c0c9..ab2f0c81c75 100644 --- a/src/Sylius/Bundle/ApiBundle/Resources/config/api_resources/ProductReview.xml +++ b/src/Sylius/Bundle/ApiBundle/Resources/config/api_resources/ProductReview.xml @@ -43,6 +43,7 @@ /shop/product-reviews sylius.api.product_review_product_filter + sylius.api.product_review_date_filter diff --git a/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml b/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml index 5c1ba31c4fa..25acf06cc69 100644 --- a/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml +++ b/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml @@ -150,12 +150,6 @@ - - - %sylius.product.product_reviews.limit% - - - diff --git a/src/Sylius/Bundle/ApiBundle/Resources/config/services/filters.xml b/src/Sylius/Bundle/ApiBundle/Resources/config/services/filters.xml index f3e18f38cd9..29666cedb15 100644 --- a/src/Sylius/Bundle/ApiBundle/Resources/config/services/filters.xml +++ b/src/Sylius/Bundle/ApiBundle/Resources/config/services/filters.xml @@ -61,6 +61,13 @@ + + + + + + + diff --git a/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php b/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php deleted file mode 100644 index 9c30d37a1c5..00000000000 --- a/src/Sylius/Bundle/ApiBundle/Serializer/ProductSerializer.php +++ /dev/null @@ -1,65 +0,0 @@ -objectNormalizer = $objectNormalizer; - $this->reviewsLimit = $reviewsLimit; - } - - public function normalize($object, $format = null, array $context = []) - { - Assert::isInstanceOf($object, ProductInterface::class); - - $productReviews = $object->getAcceptedReviews(); - $reviewsCount = count($productReviews); - - if ($reviewsCount > $this->reviewsLimit) { - for ($i = 0; $i < $reviewsCount - $this->reviewsLimit; $i++) { - $object->removeReview($productReviews->get($i)); - } - } - - $data = $this->objectNormalizer->normalize($object, $format, $context); - $data['@id'] = $object->getId(); - - return $data; - } - - public function supportsNormalization($data, $format = null, $context = []): bool - { - return $data instanceof ProductInterface && $this->isShopGet($context); - } - - private function isShopGet(array $context): bool - { - return isset($context['item_operation_name']) && ($context['item_operation_name'] === 'shop_get'); - } -} diff --git a/src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php b/src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php deleted file mode 100644 index 8340476f878..00000000000 --- a/src/Sylius/Bundle/ApiBundle/spec/Serializer/ProductSerializerSpec.php +++ /dev/null @@ -1,52 +0,0 @@ -beConstructedWith($objectNormalizer, 3); - } - - function it_supports_only_product_interface(): void { - $product = new Product(); - $this->supportsNormalization($product)->shouldReturn(true); - - $order = new Order(); - $this->supportsNormalization($order)->shouldReturn(false); - } - - function it_does_not_serialize_if_item_operation_name_is_not_shop_get(): void { - $product = new Product(); - $this->supportsNormalization($product, null, ['item_operation_name' => 'shop_admin'])->shouldReturn(false); - } - - function it_serializes_product_if_item_operation_name_is_shop_get( - NormalizerInterface $objectNormalizer - ): void { - $product = new Product(); - $product->getId()->willReturn(20); - - $objectNormalizer->normalize($product, null, [])->willReturn([]); - - $this->normalize($product, null, [])->shouldReturn(['@id' => 20]); - } -} From 8e74ab7b1cfd6c0741abb79768c653cf46e8a94f Mon Sep 17 00:00:00 2001 From: SirDomin Date: Mon, 29 Mar 2021 08:56:25 +0200 Subject: [PATCH 5/6] remove serialization from product-review --- src/Sylius/Bundle/ApiBundle/Resources/config/services.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml b/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml index 25acf06cc69..e356bf7ce17 100644 --- a/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml +++ b/src/Sylius/Bundle/ApiBundle/Resources/config/services.xml @@ -21,7 +21,6 @@ Sylius\Component\Addressing\Model\AddressInterface - 3 From 849ca139935daa43caaee755a8ea6b2183c4eeee Mon Sep 17 00:00:00 2001 From: SirDomin Date: Tue, 30 Mar 2021 07:48:26 +0200 Subject: [PATCH 6/6] move context to productReviewContext --- .../Behat/Context/Api/Shop/ProductContext.php | 57 +------------------ .../Context/Api/Shop/ProductReviewContext.php | 44 ++++++++++++++ .../config/services/contexts/api/shop.xml | 2 - 3 files changed, 45 insertions(+), 58 deletions(-) diff --git a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php index 357fa810b92..6786c72964a 100644 --- a/src/Sylius/Behat/Context/Api/Shop/ProductContext.php +++ b/src/Sylius/Behat/Context/Api/Shop/ProductContext.php @@ -13,7 +13,6 @@ namespace Sylius\Behat\Context\Api\Shop; -use ApiPlatform\Core\Api\IriConverterInterface; use Behat\Behat\Context\Context; use Sylius\Behat\Client\ApiClientInterface; use Sylius\Behat\Client\Request; @@ -37,24 +36,14 @@ final class ProductContext implements Context /** @var SharedStorageInterface */ private $sharedStorage; - /** @var ApiClientInterface */ - private $productReviewClient; - - /** @var IriConverterInterface */ - private $iriConverter; - public function __construct( ApiClientInterface $client, ResponseCheckerInterface $responseChecker, - SharedStorageInterface $sharedStorage, - ApiClientInterface $productReviewClient, - IriConverterInterface $iriConverter + SharedStorageInterface $sharedStorage ) { $this->client = $client; $this->responseChecker = $responseChecker; $this->sharedStorage = $sharedStorage; - $this->productReviewClient = $productReviewClient; - $this->iriConverter = $iriConverter; } /** @@ -94,39 +83,6 @@ public function iSearchForProductsWithName(string $name) $this->client->filter(); } - /** - * @Then I should see :amount product reviews - */ - public function iShouldSeeProductReviews(int $amount): void - { - /** @var ProductInterface $product */ - $product = $this->sharedStorage->get('product'); - - $this->productReviewClient->index(); - $this->productReviewClient->addFilter('reviewSubject', $this->iriConverter->getIriFromItem($product)); - $this->productReviewClient->addFilter('itemsPerPage', 3); - $this->productReviewClient->addFilter('order[createdAt]', 'desc'); - $this->productReviewClient->filter(); - - Assert::same($this->responseChecker->countCollectionItems($this->productReviewClient->getLastResponse()), $amount); - } - - /** - * @Then I should see reviews titled :titleOne, :titleTwo and :titleThree - */ - public function iShouldSeeReviewsTitledAnd(string ...$titles): void - { - Assert::true($this->hasReviewsWithTitles($titles)); - } - - /** - * @Then I should not see review titled :title - */ - public function iShouldNotSeeReviewTitled(string $title): void - { - Assert::false($this->hasReviewsWithTitles([$title])); - } - /** * @Then I should see the product :name */ @@ -248,15 +204,4 @@ private function hasProductWithName(array $products, string $name): bool return false; } - - private function hasReviewsWithTitles(array $titles): bool - { - foreach ($titles as $title) { - if (!$this->responseChecker->hasItemWithValue($this->productReviewClient->getLastResponse(), 'title', $title)) { - return false; - } - } - - return true; - } } diff --git a/src/Sylius/Behat/Context/Api/Shop/ProductReviewContext.php b/src/Sylius/Behat/Context/Api/Shop/ProductReviewContext.php index 830f27e5881..3b4a843ee77 100644 --- a/src/Sylius/Behat/Context/Api/Shop/ProductReviewContext.php +++ b/src/Sylius/Behat/Context/Api/Shop/ProductReviewContext.php @@ -89,6 +89,39 @@ public function iLeaveACommentTitled(string $comment, string $title, ?string $em $this->client->addRequestData('email', $email); } + /** + * @Then I should see :amount product reviews + */ + public function iShouldSeeProductReviews(int $amount = 0): void + { + /** @var ProductInterface $product */ + $product = $this->sharedStorage->get('product'); + + $this->client->index(); + $this->client->addFilter('reviewSubject', $this->iriConverter->getIriFromItem($product)); + $this->client->addFilter('itemsPerPage', 3); + $this->client->addFilter('order[createdAt]', 'desc'); + $this->client->filter(); + + Assert::same($this->responseChecker->countCollectionItems($this->client->getLastResponse()), $amount); + } + + /** + * @Then I should see reviews titled :titleOne, :titleTwo and :titleThree + */ + public function iShouldSeeReviewsTitledAnd(string ...$titles): void + { + Assert::true($this->hasReviewsWithTitles($titles)); + } + + /** + * @Then I should not see review titled :title + */ + public function iShouldNotSeeReviewTitled(string $title): void + { + Assert::false($this->hasReviewsWithTitles([$title])); + } + /** * @When I rate it with :rating point(s) */ @@ -126,4 +159,15 @@ public function iShouldNotSeeReviewTitledInTheList(string $title): void { Assert::isEmpty($this->responseChecker->getCollectionItemsWithValue($this->client->getLastResponse(), 'title', $title)); } + + private function hasReviewsWithTitles(array $titles): bool + { + foreach ($titles as $title) { + if (!$this->responseChecker->hasItemWithValue($this->client->getLastResponse(), 'title', $title)) { + return false; + } + } + + return true; + } } diff --git a/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml b/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml index aa3928df90c..5700a662d85 100644 --- a/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml +++ b/src/Sylius/Behat/Resources/config/services/contexts/api/shop.xml @@ -83,8 +83,6 @@ - -