Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added posibility to use sylius 1.13 #237

Merged
merged 1 commit into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.0 < 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"
}
Loading