Skip to content

Commit

Permalink
Added posibility to use sylius 1.13
Browse files Browse the repository at this point in the history
  • Loading branch information
leszczuu committed Mar 18, 2024
1 parent 916f6ab commit b994414
Show file tree
Hide file tree
Showing 8 changed files with 226 additions and 14 deletions.
20 changes: 14 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ jobs:
strategy:
fail-fast: false
matrix:
php: ["8.0"]
php: ["8.1"]
symfony: ["^5.4", "^6.0"]
sylius: ["~1.11.0", "~1.12.0"]
sylius: ["~1.11.0", "~1.12.0", "1.13.x-dev as 1.13.0"]
node: ["14.x"]
mysql: ["8.0"]
mysql: ["8.0.36"]

exclude:
- sylius: ~1.11.0
Expand Down Expand Up @@ -142,7 +142,7 @@ jobs:
-
name: Copy package.json.dist to package.json
if: matrix.sylius != ''
run: (cd tests/Application && cp package.json.\${{ matrix.sylius }}.dist package.json)
run: (cd tests/Application && cp "package.json.${{ matrix.sylius }}.dist" package.json)

-
name: Install JS dependencies
Expand Down Expand Up @@ -170,6 +170,7 @@ jobs:

-
name: Validate composer.json
if: ${{ matrix.sylius != '1.13.x-dev as 1.13.0' }}
run: composer validate --ansi --strict

-
Expand All @@ -185,7 +186,14 @@ jobs:

-
name: Run Behat
run: vendor/bin/behat --colors --strict -vvv --no-interaction || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun
if: ${{ matrix.sylius != '1.13.x-dev as 1.13.0' }}
run: vendor/bin/behat --colors --strict -vvv --no-interaction --tags '~@sylius113' || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun --tags '~@sylius113'

-
name: Run Behat
if: ${{ matrix.sylius == '1.13.x-dev as 1.13.0' }}
run: vendor/bin/behat --colors --strict -vvv --no-interaction --tags '~@sylius112' || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun --tags '~@sylius112'


-
name: Upload Behat logs
Expand All @@ -211,4 +219,4 @@ jobs:
SLACK_MESSAGE: ':x:'
SLACK_TITLE: Failed build on ${{ github.event.repository.name }} repository
SLACK_USERNAME: ${{ secrets.FAILED_BUILD_SLACK_USERNAME }}
SLACK_WEBHOOK: ${{ secrets.FAILED_BUILD_SLACK_WEBHOOK }}
SLACK_WEBHOOK: ${{ secrets.FAILED_BUILD_SLACK_WEBHOOK }}
6 changes: 4 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"require": {
"ext-json": "*",
"php": "^8.0",
"sylius/sylius": "~1.11.0 || ~1.12.0",
"sylius/sylius": "~1.11.0 || >=1.12.13 || ~1.13.0",
"friendsofsymfony/elastica-bundle": "^6.0",
"symfony/property-access": "^5.4 || ^6.0",
"symfony/webpack-encore-bundle": "^1.16",
Expand Down Expand Up @@ -48,7 +48,9 @@
"twig/extra-bundle": "^3.4"
},
"conflict": {
"symfony/form": "4.4.11 || 4.4.12"
"symfony/form": "4.4.11 || 4.4.12",
"api-platform/core": "v2.7.17",
"sylius/sylius": "<= 1.12.13"
},
"autoload": {
"psr-4": {
Expand Down
2 changes: 1 addition & 1 deletion features/shop/site_wide_searching_products.feature
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@site_wide_searching_products
@site_wide_searching_products @sylius112
Feature: Site-wide products search
In order to quickly find products I want to buy
As a Customer
Expand Down
152 changes: 152 additions & 0 deletions features/shop/site_wide_searching_products_113.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
@site_wide_searching_products @sylius113
Feature: Site-wide products search
In order to quickly find products I want to buy
As a Customer
I want to be able to search products across the entire catalog

Background:
Given the store operates on a channel named "Web-US" in "USD" currency
And the store classifies its products as "Cars"
And the store classifies its products as "Motorbikes"
And the store has a select product attribute "Car Type" with values "Cabrio" and "SUV"
And the store has a select product attribute "Motorbike Type" with values "Enduro" and "Naked"
And there is a product named "BMW Z4" in the store
And this product's price is "$42,670.00"
And this product has select attribute "Car Type" with value "Cabrio"
And this product has a text attribute "Color" with value "Red"
And this product has option "Supply" with values "Gasoline" and "Diesel"
And this product is available in "Gasoline" supply priced at "$42,670.00"
And this product is available in "Diesel" supply priced at "$45,670.00"
And this product belongs to "Cars"
And there is a product named "Volvo XC90" in the store
And this product's price is "$64,505.80"
And this product has select attribute "Car Type" with value "SUV"
And this product has a text attribute "Color" with value "Black"
And this product belongs to "Cars"
And there is a product named "BMW 5 Series" in the store
And this product's price is "$52,070.00"
And this product has select attribute "Car Type" with value "Cabrio"
And this product has a text attribute "Color" with value "Red"
And this product belongs to "Cars"
And there is a product named "Lamborghini Aventador" in the store
And this product's price is "$450,000.00"
And this product has a text attribute "Color" with value "Yellow"
And this product belongs to "Cars"
And there is a product named "BMW GS" in the store
And this product's price is "$18,070.00"
And this product has select attribute "Motorbike Type" with value "Enduro"
And this product has a text attribute "Color" with value "Grey"
And this product belongs to "Motorbikes"
And there is a product named "Ducati Monster" in the store
And this product's price is "$14,995.00"
And this product has select attribute "Motorbike Type" with value "Naked"
And this product has a text attribute "Color" with value "Black"
And this product's short description is:
"""
This is the Ducati Monster which is much better than any other BMW motorbike.
"""
And this product belongs to "Motorbikes"
And there is a product named "Honda Africa Twin" in the store
And this product has select attribute "Motorbike Type" with value "Enduro"
And this product has a text attribute "Color" with value "Green & White"
And this product's price is "$13,490.00"
And this product's description is:
"""
This is the Honda Africa Twin which is like the BMW GS but from Honda.
"""
And this product belongs to "Motorbikes"
And the data is populated to Elasticsearch

@ui
Scenario: Searching products by name, description and short description in all taxons
When I browse the search page
And I search the products by "BMW" phrase in the site-wide search box
Then I should see the product "BMW Z4" in the search results
And I should see the product "BMW GS" in the search results
And I should see the product "BMW 5 Series" in the search results
And I should see the product "Honda Africa Twin" in the search results
And I should see the product "Ducati Monster" in the search results

@ui
Scenario: Searching products from the home page
When I open the home page
And I search the products by "Lamborghini" phrase in the site-wide search box
Then I should see the product "Lamborghini Aventador" in the search results

@ui
Scenario: Searching products and viewing price aggregations
When I browse the search page
And I search the products by "BMW" phrase in the site-wide search box
Then I should see the following intervals in the price filter:
"""
$10,000.00 - $20,000.00 (3)
$40,000.00 - $50,000.00 (1)
$50,000.00 - $60,000.00 (1)
"""
And I should see 5 products in search results

@ui
Scenario: Searching products and viewing taxon aggregations
When I browse the search page
And I search the products by "BMW" phrase in the site-wide search box
Then I should see the following options in the taxon filter:
"""
Motorbikes (3)
Cars (2)
"""
And I should see 5 products in search results

@ui
Scenario: Searching products and filtering by price
When I browse the search page
And I search the products by "BMW" phrase in the site-wide search box
And I filter by price interval "$10,000.00 - $20,000.00"
And I filter by price interval "$50,000.00 - $60,000.00"
Then I should see 4 products in search results

@ui
Scenario: Searching products and filtering by taxon
When I browse the search page
And I search the products by "BMW" phrase in the site-wide search box
And I filter by taxon "Motorbikes"
Then I should see 3 products in search results

@ui
Scenario: Searching products and viewing car type and motorbike type select attributes aggregations
When I browse the search page
And I search the products by "BMW or Volvo" phrase in the site-wide search box
Then I should see the following options in the "Car Type" attribute filter:
"""
Cabrio (2)
Suv (1)
"""
And I should see the following options in the "Motorbike Type" attribute filter:
"""
Enduro (2)
Naked (1)
"""
And I should see 6 products in search results

@ui
Scenario: Searching products and viewing color text attribute aggregations
When I browse the search page
And I search the products by "BMW or Volvo" phrase in the site-wide search box
Then I should see the following options in the "Color" attribute filter:
"""
Black (2)
Red (2)
Green & White (1)
Grey (1)
"""
And I should see 6 products in search results

@ui
Scenario: Searching products and viewing supply option aggregations
When I browse the search page
And I search the products by "BMW or Volvo" phrase in the site-wide search box
Then I should see the following options in the "Supply" option filter:
"""
Diesel (1)
Gasoline (1)
"""
And I should see 6 products in search results
4 changes: 2 additions & 2 deletions src/Controller/RequestDataHandler/PaginationDataHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public function retrieveData(array $requestData): array
return $data;
}

private function resolvePage(array $requestData, array &$data): void
private function resolvePage(array $requestData, array & $data): void
{
$page = 1;

Expand All @@ -42,7 +42,7 @@ private function resolvePage(array $requestData, array &$data): void
$data[self::PAGE_INDEX] = $page;
}

private function resolveLimit(array $requestData, array &$data): void
private function resolveLimit(array $requestData, array & $data): void
{
$limit = $this->defaultLimit;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public function retrieveData(array $requestData): array

private function handleOptionsPrefixedProperty(
array $requestData,
array &$data
array & $data
): void {
if (!isset($requestData['options'])) {
return;
Expand All @@ -88,7 +88,7 @@ private function handleOptionsPrefixedProperty(

private function handleAttributesPrefixedProperty(
array $requestData,
array &$data,
array & $data,
?array $attributesDefinitions = []
): void {
if (!isset($requestData['attributes'])) {
Expand Down
11 changes: 10 additions & 1 deletion tests/Application/config/bundles.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

declare(strict_types=1);

return [
use Sylius\Bundle\CoreBundle\SyliusCoreBundle;

$bundles = [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
Expand Down Expand Up @@ -63,3 +65,10 @@
Sylius\Calendar\SyliusCalendarBundle::class => ['all' => true],
BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true],
];


if ( defined(SyliusCoreBundle::class.'::VERSION_ID') && SyliusCoreBundle::VERSION_ID >= '11300') {
$bundles[Sylius\Abstraction\StateMachine\SyliusStateMachineAbstractionBundle::class] = ['all' => true];
}

return $bundles;
41 changes: 41 additions & 0 deletions tests/Application/package.json.1.13.x-dev as 1.13.0.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"dependencies": {
"@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": "^1.6.1",
"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",
"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",
"merge-stream": "^1.0.0",
"sass": "^1.39.2",
"sass-loader": "^12.1.0"
},
"scripts": {
"dev": "yarn encore dev",
"watch": "yarn encore dev --watch",
"prod": "yarn encore prod",
"lint": "yarn lint:js",
"lint:js": "eslint gulpfile.babel.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Sylius/Sylius.git"
},
"author": "Paweł Jędrzejewski",
"license": "MIT"
}

0 comments on commit b994414

Please sign in to comment.