mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
[UPMERGE] 2.3 -> symfony-8 (#19069)
This PR has been generated automatically. For more details see [upmerge_pr.yaml](/Sylius/Sylius/blob/2.3/.github/workflows/upmerge_pr.yaml). **Remember!** The upmerge should always be merged with using `Merge pull request` button. In case of conflicts, please resolve them manually with usign the following commands: ``` git fetch upstream gh pr checkout <this-pr-number> git merge upstream/symfony-8 -m "Resolve conflicts between 2.3 and symfony-8" ``` If you use other name for the upstream remote, please replace `upstream` with the name of your remote pointing to the `Sylius/Sylius` repository. Once the conflicts are resolved, please run `git merge --continue` and push the changes to this PR.
This commit is contained in:
commit
88b2a49867
738 changed files with 8650 additions and 2205 deletions
1
.gitattributes
vendored
1
.gitattributes
vendored
|
|
@ -34,7 +34,6 @@ phpstan.neon.dist export-ignore
|
|||
phpstan-baseline.neon export-ignore
|
||||
phpunit.xml.dist export-ignore
|
||||
rector.php export-ignore
|
||||
RoboFile.php export-ignore
|
||||
symfony.lock export-ignore
|
||||
webpack.config.js export-ignore
|
||||
yaml-standards.yaml export-ignore
|
||||
|
|
|
|||
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
|
@ -1,6 +1,6 @@
|
|||
| Q | A
|
||||
|-----------------|-----
|
||||
| Branch? | 1.14, 2.0 or 2.1 <!-- see the comment below -->
|
||||
| Branch? | 2.2 or 2.3 <!-- see the comment below -->
|
||||
| Bug fix? | no/yes
|
||||
| New feature? | no/yes
|
||||
| BC breaks? | no/yes
|
||||
|
|
@ -9,8 +9,8 @@
|
|||
| License | MIT
|
||||
|
||||
<!--
|
||||
- Bug fixes must be submitted against the 1.14 or 2.1 branch
|
||||
- Features and deprecations must be submitted against the 2.2 branch
|
||||
- Bug fixes must be submitted against the 2.2 branch
|
||||
- Features and deprecations must be submitted against the 2.3 branch
|
||||
- Make sure that the correct base branch is set
|
||||
|
||||
To be sure you are not breaking any Backward Compatibilities, check the documentation:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
name: Continuous Integration 2.2 (Full)
|
||||
name: Continuous Integration (Full)
|
||||
|
||||
on:
|
||||
push:
|
||||
|
|
@ -10,17 +10,17 @@ on:
|
|||
workflow_dispatch: ~
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.workflow }}-${{ github.ref }}-2_0-full
|
||||
group: ci-${{ github.workflow }}-${{ github.ref }}-full
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
static-checks:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.2"]
|
||||
branch: ["2.2", "2.3"]
|
||||
name: "[${{ matrix.branch }}] Static checks"
|
||||
uses: ./.github/workflows/ci_static-checks.yaml
|
||||
with:
|
||||
|
|
@ -29,7 +29,7 @@ jobs:
|
|||
e2e-mariadb:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.2"]
|
||||
branch: ["2.2", "2.3"]
|
||||
name: "[${{ matrix.branch }}] Tests (MariaDB)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-mariadb.yaml
|
||||
|
|
@ -39,7 +39,7 @@ jobs:
|
|||
e2e-mysql:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.2"]
|
||||
branch: ["2.2", "2.3"]
|
||||
name: "[${{ matrix.branch }}] Tests (MySQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-mysql.yaml
|
||||
|
|
@ -49,7 +49,7 @@ jobs:
|
|||
e2e-pgsql:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.2"]
|
||||
branch: ["2.2", "2.3"]
|
||||
name: "[${{ matrix.branch }}] Tests (PostgreSQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-pgsql.yaml
|
||||
|
|
@ -59,7 +59,7 @@ jobs:
|
|||
e2e-js:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.2"]
|
||||
branch: ["2.2", "2.3"]
|
||||
name: "[${{ matrix.branch }}] Javascript Tests (MySQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_js.yaml
|
||||
|
|
@ -67,7 +67,10 @@ jobs:
|
|||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
frontend:
|
||||
name: Frontend
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.2", "2.3"]
|
||||
name: "[${{ matrix.branch }}] Frontend"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_frontend.yaml
|
||||
with:
|
||||
|
|
@ -76,7 +79,7 @@ jobs:
|
|||
packages:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.2"]
|
||||
branch: ["2.2", "2.3"]
|
||||
name: "[${{ matrix.branch }}] Packages"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_packages.yaml
|
||||
118
.github/workflows/ci__full_1_14.yaml
vendored
118
.github/workflows/ci__full_1_14.yaml
vendored
|
|
@ -1,118 +0,0 @@
|
|||
name: Continuous Integration 1.14 (Full)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'full-ci/**'
|
||||
schedule:
|
||||
-
|
||||
cron: "0 1 * * *" # Run every day at 1am
|
||||
workflow_dispatch: ~
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.workflow }}-${{ github.ref }}-1_14-full
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
static-checks:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["1.14"]
|
||||
name: "[${{ matrix.branch }}] Static checks"
|
||||
uses: ./.github/workflows/ci_static-checks.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
e2e-mariadb:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["1.14"]
|
||||
name: "[${{ matrix.branch }}] End-to-end tests (MariaDB)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-mariadb.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
e2e-mysql:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["1.14"]
|
||||
name: "[${{ matrix.branch }}] End-to-end tests (MySQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-mysql.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
e2e-pgsql:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["1.14"]
|
||||
name: "[${{ matrix.branch }}] End-to-end tests (PostgreSQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-pgsql.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
frontend:
|
||||
name: Frontend
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_frontend.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
packages:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["1.14"]
|
||||
name: "[${{ matrix.branch }}] Packages"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_packages.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
notify-about-build-status:
|
||||
if: ${{ always() }}
|
||||
name: "Notify about build status"
|
||||
needs: [static-checks, e2e-mariadb, e2e-mysql, e2e-pgsql, frontend, packages]
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
|
||||
steps:
|
||||
- name: "Process data"
|
||||
id: process-data
|
||||
shell: bash
|
||||
run: |
|
||||
echo "branch=$(echo ${{ github.ref }} | sed 's/refs\/heads\///g' | sed 's/refs\/tags\///g')" >> $GITHUB_OUTPUT
|
||||
echo "sha=$(echo ${{ github.sha }} | cut -c 1-12)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "Notify on Slack"
|
||||
uses: edge/simple-slack-notify@master
|
||||
env:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
||||
if: env.SLACK_WEBHOOK_URL != null
|
||||
with:
|
||||
channel: "#daily-build"
|
||||
username: "GitHub Actions"
|
||||
text: |
|
||||
*<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | ${{ github.workflow }} #${{ github.run_number }} build on ${{ github.repository }} repository has been completed for ${{ steps.process-data.outputs.branch }} branch.>*
|
||||
|
||||
${{ needs.static-checks.result == 'success' && ':+1:' || ':x:' }} Static Checks
|
||||
${{ needs.e2e-mariadb.result == 'success' && ':+1:' || ':x:' }} End-to-End (MariaDB)
|
||||
${{ needs.e2e-mysql.result == 'success' && ':+1:' || ':x:' }} End-to-End (MySQL)
|
||||
${{ needs.e2e-pgsql.result == 'success' && ':+1:' || ':x:' }} End-to-End (PostgreSQL)
|
||||
${{ needs.frontend.result == 'success' && ':+1:' || ':x:' }} Frontend
|
||||
${{ needs.packages.result == 'success' && ':+1:' || ':x:' }} Packages
|
||||
|
||||
_ _ _ _ _ _ _
|
||||
color: "danger"
|
||||
fields: |
|
||||
[
|
||||
{ "title": "Repository", "value": "<https://github.com/${{ github.repository }} | ${{ github.repository }}>", "short": true },
|
||||
{ "title": "Action", "value": "<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | ${{ github.workflow }} #${{ github.run_number }}>", "short": true },
|
||||
{ "title": "Reference", "value": "<https://github.com/${{ github.repository }}/tree/${{ steps.process-data.outputs.branch }} | ${{ steps.process-data.outputs.branch }}>", "short": true },
|
||||
{ "title": "Commit", "value": "<https://github.com/${{ github.repository }}/commit/${{ github.sha }} | ${{ steps.process-data.outputs.sha }}>", "short": true },
|
||||
{ "title": "Event", "value": "${{ github.event_name }}", "short": true }
|
||||
]
|
||||
129
.github/workflows/ci__full_2_1.yaml
vendored
129
.github/workflows/ci__full_2_1.yaml
vendored
|
|
@ -1,129 +0,0 @@
|
|||
name: Continuous Integration 2.1 (Full)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'full-ci/**'
|
||||
schedule:
|
||||
-
|
||||
cron: "0 2 * * *" # Run every day at 2am
|
||||
workflow_dispatch: ~
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.workflow }}-${{ github.ref }}-2_1-full
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
static-checks:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.1"]
|
||||
name: "[${{ matrix.branch }}] Static checks"
|
||||
uses: ./.github/workflows/ci_static-checks.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
e2e-mariadb:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.1"]
|
||||
name: "[${{ matrix.branch }}] Tests (MariaDB)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-mariadb.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
e2e-mysql:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.1"]
|
||||
name: "[${{ matrix.branch }}] Tests (MySQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-mysql.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
e2e-pgsql:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.1"]
|
||||
name: "[${{ matrix.branch }}] Tests (PostgreSQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_e2e-pgsql.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
e2e-js:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.1"]
|
||||
name: "[${{ matrix.branch }}] Javascript Tests (MySQL)"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_js.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
frontend:
|
||||
name: Frontend
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_frontend.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
packages:
|
||||
strategy:
|
||||
matrix:
|
||||
branch: ["2.1"]
|
||||
name: "[${{ matrix.branch }}] Packages"
|
||||
needs: static-checks
|
||||
uses: ./.github/workflows/ci_packages.yaml
|
||||
with:
|
||||
branch: ${{ matrix.branch }}
|
||||
type: full
|
||||
notify-about-build-status:
|
||||
if: ${{ always() }}
|
||||
name: "Notify about build status"
|
||||
needs: [static-checks, e2e-mariadb, e2e-mysql, e2e-pgsql, e2e-js, frontend, packages]
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
|
||||
steps:
|
||||
- name: "Process data"
|
||||
id: process-data
|
||||
shell: bash
|
||||
run: |
|
||||
echo "branch=$(echo ${{ github.ref }} | sed 's/refs\/heads\///g' | sed 's/refs\/tags\///g')" >> $GITHUB_OUTPUT
|
||||
echo "sha=$(echo ${{ github.sha }} | cut -c 1-12)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "Notify on Slack"
|
||||
uses: edge/simple-slack-notify@master
|
||||
env:
|
||||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
||||
if: env.SLACK_WEBHOOK_URL != null
|
||||
with:
|
||||
channel: "#daily-build"
|
||||
username: "GitHub Actions"
|
||||
text: |
|
||||
*<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | ${{ github.workflow }} #${{ github.run_number }} build on ${{ github.repository }} repository has been completed for ${{ steps.process-data.outputs.branch }} branch.>*
|
||||
|
||||
${{ needs.static-checks.result == 'success' && ':+1:' || ':x:' }} Static Checks
|
||||
${{ needs.e2e-mariadb.result == 'success' && ':+1:' || ':x:' }} Tests (MariaDB)
|
||||
${{ needs.e2e-mysql.result == 'success' && ':+1:' || ':x:' }} Tests (MySQL)
|
||||
${{ needs.e2e-pgsql.result == 'success' && ':+1:' || ':x:' }} Tests (PostgreSQL)
|
||||
${{ needs.e2e-js.result == 'success' && ':+1:' || ':x:' }} Javascript Tests (MySQL)
|
||||
${{ needs.frontend.result == 'success' && ':+1:' || ':x:' }} Frontend
|
||||
${{ needs.packages.result == 'success' && ':+1:' || ':x:' }} Packages
|
||||
|
||||
_ _ _ _ _ _ _
|
||||
color: "danger"
|
||||
fields: |
|
||||
[
|
||||
{ "title": "Repository", "value": "<https://github.com/${{ github.repository }} | ${{ github.repository }}>", "short": true },
|
||||
{ "title": "Action", "value": "<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | ${{ github.workflow }} #${{ github.run_number }}>", "short": true },
|
||||
{ "title": "Reference", "value": "<https://github.com/${{ github.repository }}/tree/${{ steps.process-data.outputs.branch }} | ${{ steps.process-data.outputs.branch }}>", "short": true },
|
||||
{ "title": "Commit", "value": "<https://github.com/${{ github.repository }}/commit/${{ github.sha }} | ${{ steps.process-data.outputs.sha }}>", "short": true },
|
||||
{ "title": "Event", "value": "${{ github.event_name }}", "short": true }
|
||||
]
|
||||
1
.github/workflows/ci__unstable.yaml
vendored
1
.github/workflows/ci__unstable.yaml
vendored
|
|
@ -22,3 +22,4 @@ jobs:
|
|||
uses: ./.github/workflows/ci_packages-unstable.yaml
|
||||
with:
|
||||
type: minimal
|
||||
ignore-failure: true
|
||||
|
|
|
|||
28
.github/workflows/ci_e2e-mariadb.yaml
vendored
28
.github/workflows/ci_e2e-mariadb.yaml
vendored
|
|
@ -57,17 +57,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -93,7 +82,6 @@ jobs:
|
|||
run: composer require --no-update --no-scripts --no-interaction "doctrine/dbal:^3.9"
|
||||
|
||||
- name: Prepare manifest.json files
|
||||
if: "${{ inputs.branch != '1.14' }}"
|
||||
run: |
|
||||
mkdir -p public/build/admin
|
||||
mkdir -p public/build/shop
|
||||
|
|
@ -133,7 +121,7 @@ jobs:
|
|||
database: "mariadb:${{ matrix.mariadb }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
chrome_version: stable
|
||||
|
||||
- name: Run PHPUnit
|
||||
|
|
@ -178,17 +166,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -214,7 +191,6 @@ jobs:
|
|||
run: composer require --no-update --no-scripts --no-interaction "doctrine/dbal:^3.9"
|
||||
|
||||
- name: Prepare manifest.json files
|
||||
if: "${{ inputs.branch != '1.14' }}"
|
||||
run: |
|
||||
mkdir -p public/build/admin
|
||||
mkdir -p public/build/shop
|
||||
|
|
@ -254,7 +230,7 @@ jobs:
|
|||
database: "mariadb:${{ matrix.mariadb }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
chrome_version: stable
|
||||
|
||||
- name: Run UI Behat
|
||||
|
|
|
|||
28
.github/workflows/ci_e2e-mysql.yaml
vendored
28
.github/workflows/ci_e2e-mysql.yaml
vendored
|
|
@ -56,17 +56,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -90,7 +79,6 @@ jobs:
|
|||
run: composer require --no-update --no-scripts --no-interaction "doctrine/dbal:^3.9"
|
||||
|
||||
- name: Prepare manifest.json files
|
||||
if: "${{ inputs.branch != '1.14' }}"
|
||||
run: |
|
||||
mkdir -p public/build/admin
|
||||
mkdir -p public/build/shop
|
||||
|
|
@ -111,7 +99,7 @@ jobs:
|
|||
database: "mysql:${{ matrix.mysql }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
|
||||
- name: Fix permissions for Symfony logs directory
|
||||
run: |
|
||||
|
|
@ -163,17 +151,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -197,7 +174,6 @@ jobs:
|
|||
run: composer require --no-update --no-scripts --no-interaction "doctrine/dbal:^3.9"
|
||||
|
||||
- name: Prepare manifest.json files
|
||||
if: "${{ inputs.branch != '1.14' }}"
|
||||
run: |
|
||||
mkdir -p public/build/admin
|
||||
mkdir -p public/build/shop
|
||||
|
|
@ -218,7 +194,7 @@ jobs:
|
|||
database: "mysql:${{ matrix.mysql }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
|
||||
- name: Run UI Behat
|
||||
run: |
|
||||
|
|
|
|||
28
.github/workflows/ci_e2e-pgsql.yaml
vendored
28
.github/workflows/ci_e2e-pgsql.yaml
vendored
|
|
@ -56,17 +56,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -86,7 +75,6 @@ jobs:
|
|||
run: composer require --no-update --no-scripts --no-interaction "doctrine/dbal:^3.9"
|
||||
|
||||
- name: Prepare manifest.json files
|
||||
if: "${{ inputs.branch != '1.14' }}"
|
||||
run: |
|
||||
mkdir -p public/build/admin
|
||||
mkdir -p public/build/shop
|
||||
|
|
@ -107,7 +95,7 @@ jobs:
|
|||
database: "postgres:${{ matrix.postgres }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
chrome_version: stable
|
||||
|
||||
- name: Run PHPUnit
|
||||
|
|
@ -151,17 +139,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -181,7 +158,6 @@ jobs:
|
|||
run: composer require --no-update --no-scripts --no-interaction "doctrine/dbal:^3.9"
|
||||
|
||||
- name: Prepare manifest.json files
|
||||
if: "${{ inputs.branch != '1.14' }}"
|
||||
run: |
|
||||
mkdir -p public/build/admin
|
||||
mkdir -p public/build/shop
|
||||
|
|
@ -202,7 +178,7 @@ jobs:
|
|||
database: "postgres:${{ matrix.postgres }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
chrome_version: stable
|
||||
|
||||
- name: Run UI Behat
|
||||
|
|
|
|||
11
.github/workflows/ci_frontend.yaml
vendored
11
.github/workflows/ci_frontend.yaml
vendored
|
|
@ -50,17 +50,6 @@ jobs:
|
|||
APP_ENV: test_cached
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.12" ]; then
|
||||
echo "USE_LEGACY_POSTGRES_SETUP=yes" >> $GITHUB_ENV
|
||||
else
|
||||
echo "USE_LEGACY_POSTGRES_SETUP=no" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
|||
26
.github/workflows/ci_js.yaml
vendored
26
.github/workflows/ci_js.yaml
vendored
|
|
@ -64,17 +64,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -111,7 +100,7 @@ jobs:
|
|||
database: "mysql:${{ matrix.mysql }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
|
||||
- name: Run Behat (${{ matrix.group }})
|
||||
run: |
|
||||
|
|
@ -145,17 +134,6 @@ jobs:
|
|||
BEHAT_RERUN_CMD: "vendor/bin/behat --colors --strict --no-interaction -vvv -f pretty --rerun"
|
||||
|
||||
steps:
|
||||
- name: Set variables
|
||||
shell: bash
|
||||
env:
|
||||
BRANCH: ${{ inputs.branch }}
|
||||
run: |
|
||||
if [ "$BRANCH" == "1.14" ]; then
|
||||
echo "NODE_VERSION=20.x" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NODE_VERSION=24.x" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
- name: "Checkout (With Branch)"
|
||||
if: "${{ inputs.branch != '' }}"
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -192,7 +170,7 @@ jobs:
|
|||
database: "mysql:${{ matrix.mysql }}"
|
||||
php_version: ${{ matrix.php }}
|
||||
symfony_version: ${{ matrix.symfony }}
|
||||
node_version: ${{ env.NODE_VERSION }}
|
||||
node_version: "24.x"
|
||||
chrome_version: stable
|
||||
|
||||
- name: Run Behat (Panther)
|
||||
|
|
|
|||
4
.github/workflows/ci_static-checks.yaml
vendored
4
.github/workflows/ci_static-checks.yaml
vendored
|
|
@ -122,10 +122,6 @@ jobs:
|
|||
- name: Run PHPStan
|
||||
run: vendor/bin/phpstan analyse
|
||||
|
||||
- name: Run PHPSpec
|
||||
if: ${{ inputs.branch == '1.14' }}
|
||||
run: vendor/bin/phpspec run --ansi --no-interaction -f dot
|
||||
|
||||
- name: Run ComposerRequireChecker
|
||||
run: |
|
||||
(cat composer.json | jq '.["autoload-dev"]["psr-4"] |= . + {"Sylius\\Behat\\": "src/Sylius/Behat/"}' | jq 'del(.autoload["psr-4"]["Sylius\\Behat\\"])') > _composer.json
|
||||
|
|
|
|||
|
|
@ -1,5 +1,42 @@
|
|||
# CHANGELOG FOR `2.1.X`
|
||||
|
||||
## v2.1.15 (2026-06-02)
|
||||
|
||||
#### Details
|
||||
|
||||
- [#19038](https://github.com/Sylius/Sylius/pull/19038) [2.1] Prevent stale cart LiveComponents from mutating completed orders ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#19039](https://github.com/Sylius/Sylius/pull/19039) [2.1][API] Enforce channel eligibility check when changing payment method via account endpoint ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#19040](https://github.com/Sylius/Sylius/pull/19040) [2.1] Check payment request ownership ([@TheMilek](https://github.com/TheMilek))
|
||||
|
||||
## v2.1.14 (2026-04-10)
|
||||
|
||||
#### Details
|
||||
|
||||
- [#18579](https://github.com/Sylius/Sylius/pull/18579) Fix problem with empty taxon product index ([@tomkalon](https://github.com/tomkalon))
|
||||
- [#18933](https://github.com/Sylius/Sylius/pull/18933) fix: add default filter to breadcrumbs configuration title to prevent ScalarDataBag exception ([@camilleislasse](https://github.com/camilleislasse))
|
||||
- [#18943](https://github.com/Sylius/Sylius/pull/18943) Fix build after APIPlatform 4.3.2 release ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#18941](https://github.com/Sylius/Sylius/pull/18941) Add payment enabled in channel validation ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18926](https://github.com/Sylius/Sylius/pull/18926) [BUGFIX] Allow updating provinceName when provinceCode is null in API ([@rust-le](https://github.com/rust-le))
|
||||
- [#18953](https://github.com/Sylius/Sylius/pull/18953) [BUGFIX] Make mailer services public to allow usage in state machine callbacks ([@rust-le](https://github.com/rust-le))
|
||||
- [#18961](https://github.com/Sylius/Sylius/pull/18961) Resolve flash alert correctly without breaking translation ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#18940](https://github.com/Sylius/Sylius/pull/18940) Restore missing page titles for admin resource show pages ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18922](https://github.com/Sylius/Sylius/pull/18922) Unified name translations handling in admin grid index ([@pbalcerzak](https://github.com/pbalcerzak))
|
||||
- [#18965](https://github.com/Sylius/Sylius/pull/18965) Allow choosing different payment method with skip payment step when it gets disabled ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#18969](https://github.com/Sylius/Sylius/pull/18969) Add missing status code mapping for OrderItemNotFoundException ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18970](https://github.com/Sylius/Sylius/pull/18970) Add email validation constraints to cart update ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18972](https://github.com/Sylius/Sylius/pull/18972) Fix admin templates ([@loic425](https://github.com/loic425))
|
||||
- [#18974](https://github.com/Sylius/Sylius/pull/18974) Unify Tests directory with tests ([@TheMilek](https://github.com/TheMilek))
|
||||
|
||||
## v2.1.13 (2026-03-18)
|
||||
|
||||
#### Details
|
||||
|
||||
- [#18904](https://github.com/Sylius/Sylius/pull/18904) [BUGFIX] remove redundant `object` from PHPDoc union types ([@rust-le](https://github.com/rust-le))
|
||||
- [#18899](https://github.com/Sylius/Sylius/pull/18899) [CS][DX] Refactor
|
||||
- [#18895](https://github.com/Sylius/Sylius/pull/18895) [Admin] Fix product taxon grid `enabled` field always showing `true` ([@serhiilabs](https://github.com/serhiilabs))
|
||||
- [#18911](https://github.com/Sylius/Sylius/pull/18911) [BUGFIX] fix build errors ([@rust-le](https://github.com/rust-le))
|
||||
- [#18920](https://github.com/Sylius/Sylius/pull/18920) Telemetry improvements 2.1 ([@TheMilek](https://github.com/TheMilek))
|
||||
|
||||
## v2.1.12 (2026-03-09)
|
||||
|
||||
#### Details
|
||||
|
|
|
|||
|
|
@ -1,5 +1,45 @@
|
|||
# CHANGELOG FOR `2.2.X`
|
||||
|
||||
## v2.2.6 (2026-06-02)
|
||||
|
||||
#### Details
|
||||
|
||||
- [#18989](https://github.com/Sylius/Sylius/pull/18989) Fix modals appearing behind backdrop on sticky page-header ([@bartek-sek](https://github.com/bartek-sek))
|
||||
- [#18990](https://github.com/Sylius/Sylius/pull/18990) Fix attribute card style for product show ([@shochdoerfer](https://github.com/shochdoerfer))
|
||||
- [#18988](https://github.com/Sylius/Sylius/pull/18988) BUGFIX: Expose ShippingMethod *DeliveryTimeDays in admin API ([@daniellienert](https://github.com/daniellienert))
|
||||
- [#19009](https://github.com/Sylius/Sylius/pull/19009) [ApiBundle][Tests] Add regression test for anonymous cart pickup wit… ([@Wojdylak](https://github.com/Wojdylak))
|
||||
- [#19012](https://github.com/Sylius/Sylius/pull/19012) [ApiBundle] Fix "Undefined array key 0" in PathPrefixProvider when path equals API route ([@michalkaczmarek-bitbag](https://github.com/michalkaczmarek-bitbag))
|
||||
- [#19001](https://github.com/Sylius/Sylius/pull/19001) Bugfix/csrf token ([@michalkaczmarek-bitbag](https://github.com/michalkaczmarek-bitbag))
|
||||
- [#19017](https://github.com/Sylius/Sylius/pull/19017) Add appendError method to ResponseCheckerInterface ([@Prometee](https://github.com/Prometee))
|
||||
- [#19018](https://github.com/Sylius/Sylius/pull/19018) [ApiBundle] Fix 404 on GET /shop/products/{code} when all associated products are disabled ([@michalkaczmarek-bitbag](https://github.com/michalkaczmarek-bitbag))
|
||||
- [#19024](https://github.com/Sylius/Sylius/pull/19024) [2.2] [AttributeBundle] make Add and Delete button translatable in product attribute select type ([@crydotsnake](https://github.com/crydotsnake))
|
||||
- [#19025](https://github.com/Sylius/Sylius/pull/19025) [API] Add regression tests for cross-customer cart item access ([@GSadee](https://github.com/GSadee))
|
||||
- [#19026](https://github.com/Sylius/Sylius/pull/19026) [API] Slim down Swagger UI override and drop broken auto-auth JS ([@GSadee](https://github.com/GSadee))
|
||||
- [#19038](https://github.com/Sylius/Sylius/pull/19038) [2.1] Prevent stale cart LiveComponents from mutating completed orders ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#19039](https://github.com/Sylius/Sylius/pull/19039) [2.1][API] Enforce channel eligibility check when changing payment method via account endpoint ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#19040](https://github.com/Sylius/Sylius/pull/19040) [2.1] Check payment request ownership ([@TheMilek](https://github.com/TheMilek))
|
||||
|
||||
## v2.2.5 (2026-04-10)
|
||||
|
||||
#### Details
|
||||
|
||||
- [#18579](https://github.com/Sylius/Sylius/pull/18579) Fix problem with empty taxon product index ([@tomkalon](https://github.com/tomkalon))
|
||||
- [#18932](https://github.com/Sylius/Sylius/pull/18932) TASK: improve german translations for CH, DE, and AT ([@crydotsnake](https://github.com/crydotsnake))
|
||||
- [#18933](https://github.com/Sylius/Sylius/pull/18933) fix: add default filter to breadcrumbs configuration title to prevent ScalarDataBag exception ([@camilleislasse](https://github.com/camilleislasse))
|
||||
- [#18943](https://github.com/Sylius/Sylius/pull/18943) Fix build after APIPlatform 4.3.2 release ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#18941](https://github.com/Sylius/Sylius/pull/18941) Add payment enabled in channel validation ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18926](https://github.com/Sylius/Sylius/pull/18926) [BUGFIX] Allow updating provinceName when provinceCode is null in API ([@rust-le](https://github.com/rust-le))
|
||||
- [#18953](https://github.com/Sylius/Sylius/pull/18953) [BUGFIX] Make mailer services public to allow usage in state machine callbacks ([@rust-le](https://github.com/rust-le))
|
||||
- [#18961](https://github.com/Sylius/Sylius/pull/18961) Resolve flash alert correctly without breaking translation ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#18940](https://github.com/Sylius/Sylius/pull/18940) Restore missing page titles for admin resource show pages ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18922](https://github.com/Sylius/Sylius/pull/18922) Unified name translations handling in admin grid index ([@pbalcerzak](https://github.com/pbalcerzak))
|
||||
- [#18965](https://github.com/Sylius/Sylius/pull/18965) Allow choosing different payment method with skip payment step when it gets disabled ([@TheMilek](https://github.com/TheMilek))
|
||||
- [#18969](https://github.com/Sylius/Sylius/pull/18969) Add missing status code mapping for OrderItemNotFoundException ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18970](https://github.com/Sylius/Sylius/pull/18970) Add email validation constraints to cart update ([@marekrzytki](https://github.com/marekrzytki))
|
||||
- [#18972](https://github.com/Sylius/Sylius/pull/18972) Fix admin templates ([@loic425](https://github.com/loic425))
|
||||
- [#18958](https://github.com/Sylius/Sylius/pull/18958) [API] Make API Platform resource command classes overridable via container parameters ([@Prometee](https://github.com/Prometee))
|
||||
- [#18974](https://github.com/Sylius/Sylius/pull/18974) Unify Tests directory with tests ([@TheMilek](https://github.com/TheMilek))
|
||||
|
||||
## v2.2.4 (2026-03-18)
|
||||
|
||||
#### Details
|
||||
|
|
|
|||
|
|
@ -1,3 +1,53 @@
|
|||
# UPGRADE FROM `2.1.13` TO `2.1.14`
|
||||
|
||||
### Admin resource translations
|
||||
|
||||
Translations for admin-managed resources (such as product options, attributes, associations) are now resolved using the current admin locale instead of the default `%locale%` parameter.
|
||||
|
||||
Previously, translation-aware query builders relied on a static `%locale%` parameter, which could lead to inconsistencies when the admin user was working in a different language than the application default.
|
||||
|
||||
This has been updated to dynamically resolve the locale from the admin context.
|
||||
|
||||
### Before
|
||||
```yaml
|
||||
sylius_grid:
|
||||
grids:
|
||||
sylius_admin_product_association_type:
|
||||
driver:
|
||||
name: doctrine/orm
|
||||
options:
|
||||
class: "%sylius.model.product_association_type.class%"
|
||||
repository:
|
||||
method: createListQueryBuilder
|
||||
arguments: ["%locale%"]
|
||||
```
|
||||
|
||||
### After
|
||||
```yaml
|
||||
sylius_grid:
|
||||
grids:
|
||||
sylius_admin_product_association_type:
|
||||
driver:
|
||||
name: doctrine/orm
|
||||
options:
|
||||
class: "%sylius.model.product_association_type.class%"
|
||||
repository:
|
||||
method: createListQueryBuilder
|
||||
arguments: ["expr:service('sylius.context.locale').getLocaleCode()"]
|
||||
```
|
||||
|
||||
### Restore missing admin resource show title
|
||||
|
||||
A missing page title has been restored to the admin resource show pages (e.g. product, order, customer, shipment, catalog promotion).
|
||||
|
||||
Added separated show routes for each resource with dedicated show page templates.
|
||||
|
||||
### Order payment method eligibility check
|
||||
|
||||
The `Sylius\Bundle\CoreBundle\Validator\Constraints\OrderPaymentMethodEligibilityValidator` and
|
||||
`Sylius\Bundle\ApiBundle\Validator\Constraints\OrderPaymentMethodEligibilityValidator` now checks also if
|
||||
payment method is assigned to the channel of the order.
|
||||
|
||||
# UPGRADE FROM `2.1.12` TO `2.1.13`
|
||||
|
||||
### Telemetry improvements
|
||||
|
|
|
|||
|
|
@ -53,6 +53,12 @@ SYLIUS_TELEMETRY_SALT=your-custom-salt
|
|||
|
||||
1. The `Sylius\Bundle\ReviewBundle\Updater\ReviewableRatingUpdaterInterface::updateFromReview()` method has been deprecated and will be removed in Sylius 3.0. Use state machine mechanism implemented by Symfony Workflow instead.
|
||||
|
||||
## Admin UI
|
||||
|
||||
1. A new `modal-portal.js` script has been added to `AdminBundle`.
|
||||
It moves Bootstrap modal elements to `<body>` before they are displayed,
|
||||
preventing them from being rendered behind the Bootstrap backdrop when nested inside a CSS stacking context (e.g. the sticky `.page-header`).
|
||||
|
||||
## Translations
|
||||
|
||||
1. The `TranslationLocaleProvider` now ensures that the default locale (configured as `locale` in `config/parameters.yaml`)
|
||||
|
|
|
|||
162
UPGRADE-2.3.md
162
UPGRADE-2.3.md
|
|
@ -1,10 +1,170 @@
|
|||
# UPGRADE FROM `2.2` TO `2.3`
|
||||
|
||||
## Configuration
|
||||
|
||||
1. The default value of `sylius_core.order_by_identifier` has been changed from `true` to `false`. ([#18956](https://github.com/Sylius/Sylius/pull/18956))
|
||||
|
||||
The `OrderByIdentifierSqlWalker` is no longer enabled by default.
|
||||
If your application relies on ordering by identifier, enable it explicitly in your configuration:
|
||||
|
||||
```yaml
|
||||
sylius_core:
|
||||
order_by_identifier: true
|
||||
```
|
||||
|
||||
2. Configuration changes related to the broadened Doctrine support (see the *Dependencies* section).
|
||||
These only matter once you opt into **DoctrineBundle 3** / **DBAL 4**:
|
||||
|
||||
- The `auto_generate_proxy_classes: "%kernel.debug%"` option was removed from Sylius' Doctrine configuration
|
||||
(it no longer exists in DoctrineBundle 3, and since PHP 8.4 Doctrine uses native lazy objects). If you are still
|
||||
on DoctrineBundle 2 and rely on this behavior, set it explicitly in your own application configuration.
|
||||
|
||||
- The ORM metadata/query/result cache configuration was switched from wrapped `Doctrine\Common\Cache` services
|
||||
to **PSR-6 cache pools** (`type: pool`). This change lives in the application configuration (`config/packages/{prod,test}/doctrine.yaml`),
|
||||
which is **not** updated automatically on existing installations, update those files in your project accordingly:
|
||||
|
||||
```diff
|
||||
doctrine:
|
||||
orm:
|
||||
entity_managers:
|
||||
default:
|
||||
metadata_cache_driver:
|
||||
- type: service
|
||||
- id: doctrine.system_cache_provider
|
||||
+ type: pool
|
||||
+ pool: doctrine.system_cache_pool
|
||||
```
|
||||
|
||||
As part of this switch, the `doctrine.result_cache_provider` and `doctrine.system_cache_provider` services
|
||||
(defined in Sylius' application configuration, wrapping the PSR-6 pools via `Doctrine\Common\Cache\Psr6\DoctrineProvider`)
|
||||
were **removed**. If you referenced them by id, use the cache pools directly (`doctrine.system_cache_pool`,
|
||||
`doctrine.result_cache_pool`) with `type: pool` as shown above.
|
||||
|
||||
- On **PostgreSQL**, Sylius now forces the `SEQUENCE` identity generation strategy
|
||||
(`identity_generation_preferences` for `PostgreSQLPlatform`) to keep the database schema backward compatible
|
||||
with existing installations.
|
||||
|
||||
## Dependencies
|
||||
|
||||
1. The `knplabs/gaufrette` and `knplabs/knp-gaufrette-bundle` packages have been removed.
|
||||
1. The `behat/transliterator` package has been **deprecated** and will be removed in Sylius 3.0.
|
||||
|
||||
Slug generation now **primarily** uses `symfony/string` (`Symfony\Component\String\Slugger\SluggerInterface`).
|
||||
When no `$slugger` is injected, the system falls back to `Behat\Transliterator\Transliterator`, but this fallback behavior is deprecated and will be removed in Sylius 3.0.
|
||||
|
||||
The following classes have been updated — if you have extended or decorated them, update your constructor accordingly:
|
||||
|
||||
- `Sylius\Component\Product\Generator\SlugGenerator`:
|
||||
|
||||
```diff
|
||||
-public function __construct()
|
||||
+public function __construct(private ?SluggerInterface $slugger)
|
||||
```
|
||||
|
||||
> **Deprecated:** Passing `null` as `$slugger` (or omitting it) is deprecated since Sylius 2.3.
|
||||
> When `null` is passed, the generator falls back to `Behat\Transliterator\Transliterator`.
|
||||
> Both the nullable argument and the `behat/transliterator` fallback will be removed in Sylius 3.0.
|
||||
|
||||
- `Sylius\Component\Taxonomy\Generator\TaxonSlugGenerator`:
|
||||
|
||||
```diff
|
||||
-public function __construct()
|
||||
+public function __construct(private ?SluggerInterface $slugger)
|
||||
```
|
||||
|
||||
> **Deprecated:** Same as above.
|
||||
|
||||
- `Sylius\Bundle\AdminBundle\Generator\TaxonSlugGenerator`:
|
||||
|
||||
```diff
|
||||
public function __construct(
|
||||
private BaseTaxonSlugGeneratorInterface $slugGenerator,
|
||||
+ private ?SluggerInterface $slugger,
|
||||
)
|
||||
```
|
||||
|
||||
> **Deprecated:** Same as above.
|
||||
|
||||
The `StringInflector::nameToSlug()` method has been **deprecated** and will be removed in Sylius 3.0.
|
||||
|
||||
2. The `knplabs/gaufrette` and `knplabs/knp-gaufrette-bundle` packages have been removed.
|
||||
|
||||
The Gaufrette integration has been unusable as a filesystem adapter.
|
||||
Since Sylius 2.0 the default filesystem adapter uses Flysystem instead.
|
||||
|
||||
If your application depends on the Gaufrette packages directly, require them explicitly in your `composer.json`.
|
||||
|
||||
3. The `symfony/proxy-manager-bridge` and `friendsofphp/proxy-manager-lts` packages have been removed.
|
||||
|
||||
They are no longer needed, lazy services now rely on PHP's native lazy proxies provided by
|
||||
`symfony/var-exporter` (the default since Symfony 6.4). No change is required in your application.
|
||||
|
||||
If your application depends on these packages directly, require them explicitly in your `composer.json`.
|
||||
|
||||
4. The supported Doctrine version ranges have been **broadened** to allow the newer stack
|
||||
(`doctrine/doctrine-bundle` `^2.13 || ^3.0`, `doctrine/dbal` `^3.9 || ^4.0`,
|
||||
`doctrine/persistence` `^3.3 || ^4.0`, `doctrine/data-fixtures` `^1.7 || ^2.2`).
|
||||
|
||||
DBAL 4 removes the built-in `object` and `array` column types. Since Sylius maps two fields
|
||||
as `type="object"` (`PaymentSecurityToken.details` and `PaymentRequest.payload`), it registers
|
||||
a custom `Sylius\Bundle\PaymentBundle\Doctrine\DBAL\Type\ObjectType` to keep them working.
|
||||
|
||||
## Validation
|
||||
|
||||
1. Passing an array of options to configure a Sylius validation constraint is **deprecated** since Sylius 2.3
|
||||
and will be removed in Sylius 3.0. Use named arguments instead.
|
||||
|
||||
All Sylius validation constraints now declare explicit constructors with named arguments
|
||||
(marked with `#[HasNamedArguments]`). The legacy array syntax keeps working, it only triggers deprecation.
|
||||
|
||||
Configuring constraints via **XML / YAML / PHP attributes is not affected** and requires no changes; the validator
|
||||
loaders pass the options as named arguments automatically. Only **direct instantiation in PHP** should be migrated:
|
||||
|
||||
```diff
|
||||
-new ProvinceAddressConstraint(['message' => 'My custom message'])
|
||||
+new ProvinceAddressConstraint(message: 'My custom message')
|
||||
```
|
||||
|
||||
2. Several constraint message options have been renamed to follow the consistent `*Message` convention. The old option
|
||||
names and public properties are **deprecated** since Sylius 2.3 and will be removed in Sylius 3.0. Both keep working
|
||||
and stay in sync in the meantime; switch to the new `*Message` name:
|
||||
|
||||
| Constraint | Old | New |
|
||||
|------------|-----|-----|
|
||||
| `ApiBundle\...\ChosenPaymentMethodEligibility` | `notAvailable`, `notExist`, `paymentNotFound` | `notAvailableMessage`, `notExistMessage`, `paymentNotFoundMessage` |
|
||||
| `ApiBundle\...\ChosenPaymentRequestActionEligibility` | `notAvailable`, `notExist` | `notAvailableMessage`, `notExistMessage` |
|
||||
| `ApiBundle\...\AddingEligibleProductVariantToCart` | `productVariantNotSufficient` | `productVariantNotSufficientMessage` |
|
||||
| `ApiBundle\...\ChangedItemQuantityInCart` | `productVariantNotLongerAvailable`, `productVariantNotSufficient` | `productVariantNotLongerAvailableMessage`, `productVariantNotSufficientMessage` |
|
||||
| `PromotionBundle\...\PromotionRuleType`, `PromotionActionType`, `CatalogPromotionActionType`, `CatalogPromotionScopeType` | `invalidType` | `invalidTypeMessage` |
|
||||
| `PaymentBundle\...\GatewayFactoryExists` | `invalidGatewayFactory` | `invalidGatewayFactoryMessage` |
|
||||
| `ShippingBundle\...\ShippingMethodCalculatorExists` | `invalidShippingCalculator` | `invalidShippingCalculatorMessage` |
|
||||
| `ShippingBundle\...\ShippingMethodRule` | `invalidType` | `invalidTypeMessage` |
|
||||
|
||||
## Deprecations
|
||||
|
||||
1. Passing a `Sylius\Component\Core\Calculator\ProductVariantPricesCalculatorInterface` directly to the following catalog-facing classes is deprecated since Sylius 2.3.
|
||||
Implement `Sylius\Component\Core\Calculator\CatalogPricesCalculatorInterface` instead, which extends `ProductVariantPricesCalculatorInterface` with no additional methods.
|
||||
It will be required in Sylius 3.0.
|
||||
|
||||
Affected classes:
|
||||
- `Sylius\Bundle\CoreBundle\Twig\PriceExtension`
|
||||
- `Sylius\Bundle\ApiBundle\Serializer\Normalizer\ProductVariantNormalizer`
|
||||
- `Sylius\Bundle\ShopBundle\Twig\Component\Product\PriceComponent`
|
||||
- `Sylius\Bundle\ShopBundle\Twig\Component\Product\CardComponent`
|
||||
- `Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantPriceMapProvider`
|
||||
- `Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantOriginalPriceMapProvider`
|
||||
- `Sylius\Component\Core\Provider\ProductVariantMap\ProductVariantLowestPriceMapProvider`
|
||||
|
||||
If you have a custom calculator used for catalog display, make it implement `CatalogPricesCalculatorInterface`:
|
||||
|
||||
```php
|
||||
use Sylius\Component\Core\Calculator\CatalogPricesCalculatorInterface;
|
||||
|
||||
final class MyCustomCatalogPriceCalculator implements CatalogPricesCalculatorInterface
|
||||
{
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
This allows you to decorate catalog display pricing independently from cart/order pricing
|
||||
(`sylius.order_processing.order_prices_recalculator`, `sylius.filter.promotion.price_range`),
|
||||
which remain on `ProductVariantPricesCalculatorInterface`.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,26 @@
|
|||
# UPGRADE FROM `2.1.14` TO `2.1.15`
|
||||
|
||||
## Security
|
||||
|
||||
### Payment request ownership enforcement
|
||||
|
||||
`GET /api/v2/shop/payment-requests/{hash}`, `PUT /api/v2/shop/payment-requests/{hash}` and `POST /api/v2/shop/orders/{tokenValue}/payment-requests` now enforce ownership:
|
||||
|
||||
- An unauthenticated request receives `404 Not Found`, unless the underlying order is a guest order. An order qualifies as a guest order when it has no customer, when its customer has no associated user account, or when it was placed through the guest checkout flow (`Order::isCreatedByGuest()` returns `true`).
|
||||
- An authenticated shop user can only access payment requests belonging to their own orders; requests for another customer's payment request also receive `404 Not Found`.
|
||||
|
||||
Previously these operations could be performed by any authenticated user or even an anonymous user who knew the payment request hash (or, for the creation endpoint, the order token value), which constituted a broken object-level authorization (IDOR) vulnerability.
|
||||
|
||||
**No action is required** unless your integration assumed that these endpoints were publicly accessible or shared across customers.
|
||||
|
||||
### `Sylius\Bundle\ApiBundle\StateProvider\Shop\Payment\PaymentRequest\ItemProvider` constructor
|
||||
|
||||
A new `UserContextInterface` argument is appended to the constructor. Omitting it is deprecated and will be required in Sylius 3.0; without it the ownership check is skipped and the provider falls back to its previous behavior.
|
||||
|
||||
### `Sylius\Bundle\ApiBundle\CommandHandler\Payment\AddPaymentRequestHandler` constructor
|
||||
|
||||
A new, nullable `UserContextInterface` argument is appended to the constructor. When it is not provided, the ownership check is skipped and the handler falls back to its previous behavior.
|
||||
|
||||
# UPGRADE FROM `2.1.10` TO `2.1.11`
|
||||
|
||||
### Constructor signature changes
|
||||
|
|
|
|||
|
|
@ -49,3 +49,22 @@ Additionally, the redundant `code` field has been removed from the error respons
|
|||
- If your API client reads `response.data.code`, use `response.status` (HTTP header) instead
|
||||
|
||||
**References:** RFC 9110 (400 = syntactic errors, 422 = semantic/validation errors)
|
||||
|
||||
|
||||
## API Platform resource classes as container parameters
|
||||
|
||||
The following API Platform resource classes are now defined as container parameters, allowing you to override them:
|
||||
|
||||
| Parameter | Default class |
|
||||
|---|---|
|
||||
| `sylius_api.command.account.reset_password.class` | `Sylius\Bundle\ApiBundle\Command\Account\ResetPassword` |
|
||||
| `sylius_api.command.account.verify_shop_user.class` | `Sylius\Bundle\ApiBundle\Command\Account\VerifyShopUser` |
|
||||
| `sylius_api.command.admin.account.reset_password.class` | `Sylius\Bundle\ApiBundle\Command\Admin\Account\ResetPassword` |
|
||||
| `sylius_api.command.send_contact_request.class` | `Sylius\Bundle\ApiBundle\Command\SendContactRequest` |
|
||||
|
||||
To override a class, define the parameter in your configuration:
|
||||
|
||||
```yaml
|
||||
parameters:
|
||||
sylius_api.command.account.reset_password.class: App\Api\Command\CustomResetPassword
|
||||
```
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "sylius/sylius",
|
||||
"type": "library",
|
||||
"version": "v2.2.5-dev",
|
||||
"version": "v2.2.7-dev",
|
||||
"description": "E-Commerce platform for PHP, based on Symfony framework.",
|
||||
"homepage": "https://sylius.com",
|
||||
"license": "MIT",
|
||||
|
|
@ -48,7 +48,6 @@
|
|||
"doctrine/persistence": "^3.3 || ^4.0",
|
||||
"egulias/email-validator": "^4.0",
|
||||
"fakerphp/faker": "^1.23",
|
||||
"friendsofphp/proxy-manager-lts": "^1.0",
|
||||
"gedmo/doctrine-extensions": "^3.20",
|
||||
"guzzlehttp/guzzle": "^7.9",
|
||||
"guzzlehttp/psr7": "^2.5",
|
||||
|
|
@ -73,7 +72,7 @@
|
|||
"ramsey/uuid": "^4.7",
|
||||
"stof/doctrine-extensions-bundle": "^1.12",
|
||||
"sylius-labs/association-hydrator": "^1.2",
|
||||
"sylius-labs/doctrine-migrations-extra-bundle": "^0.3",
|
||||
"sylius-labs/doctrine-migrations-extra-bundle": "^0.2 || ^0.3",
|
||||
"sylius/fixtures-bundle": "^1.9",
|
||||
"sylius/grid": "^1.13",
|
||||
"sylius/grid-bundle": "^1.13",
|
||||
|
|
@ -115,7 +114,6 @@
|
|||
"symfony/process": "^6.4 || ^7.4",
|
||||
"symfony/property-access": "^6.4 || ^7.4",
|
||||
"symfony/property-info": "^6.4 || ^7.4",
|
||||
"symfony/proxy-manager-bridge": "^6.4 || ^7.4",
|
||||
"symfony/routing": "^6.4.1 || ^7.4",
|
||||
"symfony/security-bundle": "^6.4 || ^7.4",
|
||||
"symfony/security-core": "^6.4 || ^7.4",
|
||||
|
|
|
|||
|
|
@ -25,3 +25,6 @@ sylius_payment:
|
|||
encryption:
|
||||
disabled_for_factories:
|
||||
- online-disabled
|
||||
|
||||
sylius_core:
|
||||
order_by_identifier: true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
admin_basic_create:
|
||||
path: /admin/basic/create
|
||||
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
|
||||
defaults:
|
||||
template: admin/basic/create.html.twig
|
||||
|
||||
admin_basic_update:
|
||||
path: /admin/basic/update
|
||||
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
|
||||
defaults:
|
||||
template: admin/basic/update.html.twig
|
||||
|
||||
admin_basic_index:
|
||||
path: /admin/basic/index
|
||||
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
|
||||
defaults:
|
||||
template: admin/basic/index.html.twig
|
||||
|
||||
admin_basic_show:
|
||||
path: /admin/basic/show
|
||||
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
|
||||
defaults:
|
||||
template: admin/basic/show.html.twig
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
@stale_live_component
|
||||
Feature: Stale cart LiveComponent cannot mutate a completed order
|
||||
In order to protect completed orders from data corruption
|
||||
As a Developer
|
||||
I want the cart LiveComponent to be safe against stale browser state
|
||||
|
||||
Background:
|
||||
Given the store operates on a single channel in "United States"
|
||||
And the store has a product "Sylius T-Shirt" priced at "$19.99"
|
||||
|
||||
@ui @javascript
|
||||
Scenario: Clearing cart from a stale page does not delete a completed order
|
||||
Given I added product "Sylius T-Shirt" to the cart
|
||||
And I check the details of my cart
|
||||
And I note the current order id for later assertions
|
||||
When the order is completed in the background
|
||||
And I clear my cart from the stale page without reloading
|
||||
Then the completed order should still exist in the database
|
||||
And the order checkout state should be "completed"
|
||||
|
||||
@ui @javascript
|
||||
Scenario: Removing an item from a stale page does not mutate a completed order
|
||||
Given I added product "Sylius T-Shirt" to the cart
|
||||
And I check the details of my cart
|
||||
And I note the current order id for later assertions
|
||||
When the order is completed in the background
|
||||
And I remove first item from cart from the stale page without reloading
|
||||
Then the completed order should still exist in the database
|
||||
And the order should still have 1 item
|
||||
|
||||
@ui @javascript
|
||||
Scenario: Increasing item quantity on a stale page does not mutate a completed order
|
||||
Given I added product "Sylius T-Shirt" to the cart
|
||||
And I check the details of my cart
|
||||
And I note the current order id for later assertions
|
||||
When the order is completed in the background
|
||||
And I increase the quantity of the first cart item to 2 on the stale page without reloading
|
||||
Then the completed order should still exist in the database
|
||||
And the order item quantity should still be 1
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
@paying_for_order
|
||||
Feature: Preventing placing an order with a payment method not available in channel
|
||||
In order to have my order shipped without issues
|
||||
As a Visitor
|
||||
I want to be prevented from placing an order with a payment method not available in my channel
|
||||
|
||||
Background:
|
||||
Given the store operates on a single channel in the "United States" named "US Web Store"
|
||||
And the store has a product "Ubi T-Shirt" priced at "$19.99"
|
||||
And the store ships everywhere for Free
|
||||
And the store allows paying "Bank Transfer"
|
||||
And I am a logged in customer
|
||||
|
||||
@api @ui
|
||||
Scenario: Being prevented from placing an order with a payment method that is not available in my channel
|
||||
Given I added product "Ubi T-Shirt" to the cart
|
||||
And I have proceeded selecting "Bank Transfer" payment method
|
||||
And the payment method "Bank Transfer" has been disabled in "US Web Store" channel
|
||||
When I try to confirm my order
|
||||
Then I should be informed that this payment method has been disabled
|
||||
And I should not see the thank you page
|
||||
|
||||
@api @ui
|
||||
Scenario: Being prevented from placing an order with a payment method that is disabled
|
||||
Given I added product "Ubi T-Shirt" to the cart
|
||||
And I have proceeded selecting "Bank Transfer" payment method
|
||||
But the payment method "Bank Transfer" is disabled
|
||||
When I try to confirm my order
|
||||
Then I should be informed that this payment method has been disabled
|
||||
And I should not see the thank you page
|
||||
|
||||
@api @ui
|
||||
Scenario: Being prevented from placing an order with a payment method that is disabled and not available in my channel
|
||||
Given I added product "Ubi T-Shirt" to the cart
|
||||
And I have proceeded selecting "Bank Transfer" payment method
|
||||
But the payment method "Bank Transfer" is disabled
|
||||
And the payment method "Bank Transfer" has been disabled in "US Web Store" channel
|
||||
When I try to confirm my order
|
||||
Then I should be informed that this payment method has been disabled
|
||||
And I should not see the thank you page
|
||||
|
||||
@api @ui
|
||||
Scenario: Being able to place an order with enabled payment method in my channel
|
||||
Given I added product "Ubi T-Shirt" to the cart
|
||||
And I have proceeded selecting "Bank Transfer" payment method
|
||||
When I try to confirm my order
|
||||
Then I should see the thank you page
|
||||
|
|
@ -45,3 +45,35 @@ Feature: Skipping payment step when only one payment method is available
|
|||
When I complete addressing step with email "guest@example.com" and "United States" based billing address
|
||||
And I complete the shipping step with the first shipping method
|
||||
Then I should be on the checkout payment step
|
||||
|
||||
@api @ui
|
||||
Scenario: Being able to recover after the auto-selected payment method gets disabled
|
||||
Given the payment method "Bank transfer" is disabled
|
||||
And the store allows paying with "Offline"
|
||||
And I added product "Guards! Guards!" to the cart
|
||||
And I complete addressing step with email "guest@example.com" and "United States" based billing address
|
||||
And I complete the shipping step with the first shipping method
|
||||
And the payment method "Offline" is disabled
|
||||
And the payment method "Bank transfer" is enabled
|
||||
And I have tried to confirm my order
|
||||
And I have been informed that this payment method has been disabled
|
||||
When I go back to payment step of the checkout
|
||||
And I choose "Bank transfer" payment method
|
||||
And I confirm my order
|
||||
Then I should see the thank you page
|
||||
|
||||
@api @ui
|
||||
Scenario: Being able to recover after the auto-selected payment method gets removed from channel
|
||||
Given the payment method "Bank transfer" is disabled
|
||||
And the store allows paying with "Offline"
|
||||
And I added product "Guards! Guards!" to the cart
|
||||
And I complete addressing step with email "guest@example.com" and "United States" based billing address
|
||||
And I complete the shipping step with the first shipping method
|
||||
And the payment method "Offline" has been disabled in "United States" channel
|
||||
And the payment method "Bank transfer" is enabled
|
||||
And I have tried to confirm my order
|
||||
And I have been informed that this payment method has been disabled
|
||||
When I go back to payment step of the checkout
|
||||
And I choose "Bank transfer" payment method
|
||||
And I confirm my order
|
||||
Then I should see the thank you page
|
||||
|
|
|
|||
50
src/Sylius/Abstraction/StateMachine/config/services.php
Normal file
50
src/Sylius/Abstraction/StateMachine/config/services.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Sylius\Abstraction\StateMachine\CompositeStateMachine;
|
||||
use Sylius\Abstraction\StateMachine\StateMachineInterface;
|
||||
use Sylius\Abstraction\StateMachine\SymfonyWorkflowAdapter;
|
||||
use Sylius\Abstraction\StateMachine\Twig\StateMachineExtension;
|
||||
|
||||
return static function (ContainerConfigurator $container): void {
|
||||
$services = $container->services();
|
||||
$services->defaults()->public();
|
||||
|
||||
$services->set('sylius_abstraction.state_machine', CompositeStateMachine::class)
|
||||
->args([
|
||||
tagged_iterator('sylius.state_machine', indexAttribute: 'key'),
|
||||
'%sylius_abstraction.state_machine.default_adapter%',
|
||||
'%sylius_abstraction.state_machine.graphs_to_adapters_mapping%',
|
||||
]);
|
||||
|
||||
$services->alias(StateMachineInterface::class . ' $compositeStateMachine', 'sylius_abstraction.state_machine.composite');
|
||||
|
||||
$services->alias('sylius_abstraction.state_machine.composite', 'sylius_abstraction.state_machine');
|
||||
$services->alias(StateMachineInterface::class, 'sylius_abstraction.state_machine');
|
||||
|
||||
$services->set('sylius_abstraction.state_machine.adapter.symfony_workflow', SymfonyWorkflowAdapter::class)
|
||||
->args([
|
||||
service('workflow.registry'),
|
||||
])
|
||||
->tag('sylius.state_machine', ['key' => 'symfony_workflow']);
|
||||
|
||||
$services->alias(StateMachineInterface::class . ' $symfonyWorkflow', 'sylius_abstraction.state_machine.adapter.symfony_workflow');
|
||||
|
||||
$services->set('sylius_abstraction.twig.extension.state_machine', StateMachineExtension::class)
|
||||
->args([
|
||||
service('sylius_abstraction.state_machine'),
|
||||
])
|
||||
->tag('twig.extension');
|
||||
};
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
This file is part of the Sylius package.
|
||||
|
||||
(c) Sylius Sp. z o.o.
|
||||
|
||||
For the full copyright and license information, please view the LICENSE
|
||||
file that was distributed with this source code.
|
||||
|
||||
-->
|
||||
|
||||
<container
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://symfony.com/schema/dic/services"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"
|
||||
>
|
||||
<services>
|
||||
<defaults public="true" />
|
||||
|
||||
<service id="sylius_abstraction.state_machine" class="Sylius\Abstraction\StateMachine\CompositeStateMachine">
|
||||
<argument type="tagged_iterator" tag="sylius.state_machine" index-by="key" />
|
||||
<argument>%sylius_abstraction.state_machine.default_adapter%</argument>
|
||||
<argument>%sylius_abstraction.state_machine.graphs_to_adapters_mapping%</argument>
|
||||
</service>
|
||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface $compositeStateMachine" alias="sylius_abstraction.state_machine.composite" />
|
||||
|
||||
<service id="sylius_abstraction.state_machine.composite" alias="sylius_abstraction.state_machine" />
|
||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface" alias="sylius_abstraction.state_machine" />
|
||||
|
||||
<service id="sylius_abstraction.state_machine.adapter.symfony_workflow" class="Sylius\Abstraction\StateMachine\SymfonyWorkflowAdapter">
|
||||
<argument type="service" id="workflow.registry" />
|
||||
<tag name="sylius.state_machine" key="symfony_workflow" />
|
||||
</service>
|
||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface $symfonyWorkflow" alias="sylius_abstraction.state_machine.adapter.symfony_workflow" />
|
||||
|
||||
<service id="sylius_abstraction.twig.extension.state_machine" class="Sylius\Abstraction\StateMachine\Twig\StateMachineExtension">
|
||||
<argument type="service" id="sylius_abstraction.state_machine" />
|
||||
<tag name="twig.extension" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Sylius\Abstraction\StateMachine\StateMachineInterface;
|
||||
use Sylius\Abstraction\StateMachine\WinzouStateMachineAdapter;
|
||||
|
||||
return static function (ContainerConfigurator $container): void {
|
||||
$services = $container->services();
|
||||
$services->defaults()->public();
|
||||
|
||||
$services->set('sylius_abstraction.state_machine.adapter.winzou_state_machine', WinzouStateMachineAdapter::class)
|
||||
->args([
|
||||
service('sm.factory'),
|
||||
])
|
||||
->tag('sylius.state_machine', ['key' => 'winzou_state_machine']);
|
||||
|
||||
$services->alias(StateMachineInterface::class . ' $winzouStateMachine', 'sylius_abstraction.state_machine.adapter.winzou_state_machine');
|
||||
};
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
This file is part of the Sylius package.
|
||||
|
||||
(c) Sylius Sp. z o.o.
|
||||
|
||||
For the full copyright and license information, please view the LICENSE
|
||||
file that was distributed with this source code.
|
||||
|
||||
-->
|
||||
|
||||
<container
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://symfony.com/schema/dic/services"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"
|
||||
>
|
||||
<services>
|
||||
<defaults public="true" />
|
||||
|
||||
<service id="sylius_abstraction.state_machine.adapter.winzou_state_machine" class="Sylius\Abstraction\StateMachine\WinzouStateMachineAdapter">
|
||||
<argument type="service" id="sm.factory" />
|
||||
<tag name="sylius.state_machine" key="winzou_state_machine" />
|
||||
</service>
|
||||
<service id="Sylius\Abstraction\StateMachine\StateMachineInterface $winzouStateMachine" alias="sylius_abstraction.state_machine.adapter.winzou_state_machine" />
|
||||
</services>
|
||||
</container>
|
||||
|
|
@ -16,7 +16,7 @@ namespace Sylius\Abstraction\StateMachine\DependencyInjection;
|
|||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Extension\Extension;
|
||||
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
|
||||
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
|
||||
|
||||
final class SyliusStateMachineAbstractionExtension extends Extension
|
||||
{
|
||||
|
|
@ -24,13 +24,13 @@ final class SyliusStateMachineAbstractionExtension extends Extension
|
|||
{
|
||||
$config = $this->processConfiguration($this->getConfiguration([], $container), $configs);
|
||||
|
||||
$loader = new XmlFileLoader($container, new FileLocator(dirname(__DIR__, 2) . '/config/'));
|
||||
$loader->load('services.xml');
|
||||
$loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__, 2) . '/config/'));
|
||||
$loader->load('services.php');
|
||||
|
||||
if ($container->hasParameter('kernel.bundles')) {
|
||||
$bundles = $container->getParameter('kernel.bundles');
|
||||
if (array_key_exists('winzouStateMachineBundle', $bundles)) {
|
||||
$loader->load('services/integrations/winzou.xml');
|
||||
$loader->load('services/integrations/winzou.php');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ interface ResponseCheckerInterface
|
|||
|
||||
public function hasViolationWithMessage(Response $response, string $message, ?string $property = null): bool;
|
||||
|
||||
public function appendError(Response $response): self;
|
||||
|
||||
public function cleanErrors(): void;
|
||||
|
||||
/** @return array{
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
use Sylius\Component\Core\Formatter\StringInflector;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Component\Core\Model\ChannelInterface;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin\Helper;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Component\Core\Formatter\StringInflector;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiSecurityClientInterface;
|
||||
use Sylius\Behat\Service\SharedStorageInterface;
|
||||
use Symfony\Component\BrowserKit\Exception\BadMethodCallException;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestBuilder;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Service\Converter\IriConverterInterface;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestBuilder;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
use Sylius\Component\Core\Model\ChannelInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestBuilder;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestBuilder;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Admin\Helper\ValidationTrait;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Admin;
|
||||
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Common;
|
||||
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api;
|
||||
|
||||
use Behat\Hook\AfterStep;
|
||||
use Behat\Hook\AfterScenario;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Behat\Hook\Scope\AfterScenarioScope;
|
||||
use Behat\Behat\Hook\Scope\AfterStepScope;
|
||||
use Behat\Hook\AfterScenario;
|
||||
use Behat\Hook\AfterStep;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
|
||||
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api;
|
||||
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Sylius\Behat\Service\Checker\EmailCheckerInterface;
|
||||
use Sylius\Behat\Service\SharedStorageInterface;
|
||||
use Sylius\Component\Core\Model\OrderInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop\Checkout;
|
||||
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop\Checkout;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ final class CheckoutContext implements Context
|
|||
}
|
||||
|
||||
#[When('the customer is at the checkout payment step')]
|
||||
#[When('I go back to payment step of the checkout')]
|
||||
public function theCustomerIsAtTheCheckoutPaymentStep(): void
|
||||
{
|
||||
// Intentionally left blank, as this is a UI-specific action.
|
||||
|
|
@ -387,6 +388,7 @@ final class CheckoutContext implements Context
|
|||
$this->sharedStorage->set('order', $this->orderRepository->findOneByNumber($this->sharedStorage->get('order_number')));
|
||||
}
|
||||
|
||||
#[Given('I have tried to confirm my order')]
|
||||
#[When('I try to confirm my order')]
|
||||
public function iTryToConfirmMyOrder(): void
|
||||
{
|
||||
|
|
@ -989,6 +991,7 @@ final class CheckoutContext implements Context
|
|||
$this->hasProvinceNameInAddress($provinceName, $addressType);
|
||||
}
|
||||
|
||||
#[Given('/^I have been informed that (this payment method) has been disabled$/')]
|
||||
#[Then('/^I should be informed that (this payment method) has been disabled$/')]
|
||||
public function iShouldBeInformedThatThisPaymentMethodHasBeenDisabled(PaymentMethodInterface $paymentMethod): void
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Given;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ApiSecurityClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Service\SharedStorageInterface;
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\Request;
|
||||
use Sylius\Behat\Client\RequestFactoryInterface;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\Then;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
use Sylius\Behat\Client\ResponseCheckerInterface;
|
||||
use Sylius\Behat\Context\Api\Resources;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ declare(strict_types=1);
|
|||
|
||||
namespace Sylius\Behat\Context\Api\Shop;
|
||||
|
||||
use Behat\Step\When;
|
||||
use Behat\Step\Then;
|
||||
use ApiPlatform\Metadata\IriConverterInterface;
|
||||
use Behat\Behat\Context\Context;
|
||||
use Behat\Step\Then;
|
||||
use Behat\Step\When;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
use Sylius\Behat\Client\ApiClientInterface;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue