Skip to content

Commit 7751d2a

Browse files
committed
Merge remote-tracking branch 'origin/4.x' into feature/address-mutation-change
2 parents 2e69e45 + c9a737f commit 7751d2a

182 files changed

Lines changed: 1124 additions & 534 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- Branch: Target the right branch and create another pull request if it's needed in multiple branches.
55
- Docs: Should it be documented? Create a pull requests to rapidez/docs. Breaking? Write some upgrade info.
66
- Tests: Don't forget the tests; they should pass and adding more is always a good idea.
7+
- Reference: Is there any reference? Maybe an internal Jira story number?
78
89
Thanks! 🚀
910
-->

.github/workflows/playwright.yml

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ on:
99
schedule:
1010
- cron: '0 0 * * *'
1111
workflow_dispatch:
12+
inputs:
13+
update_all_screenshots:
14+
description: 'Update all screenshots?'
15+
type: boolean
1216

1317
jobs:
1418
test:
@@ -23,14 +27,12 @@ jobs:
2327
fail-fast: false
2428
matrix:
2529
include:
26-
- magento-version: 2.4.7-p7
30+
- magento-version: 2.4.7-p8
2731
magento-php-version: php83-fpm
2832
rapidez-php-version: 8.3
29-
shard: 1/2
30-
- magento-version: 2.4.8-p2
33+
- magento-version: 2.4.8-p3
3134
magento-php-version: php84-fpm
3235
rapidez-php-version: 8.4
33-
shard: 2/2
3436
screenshots: true
3537

3638
services:
@@ -39,7 +41,7 @@ jobs:
3941
env:
4042
URL: http://localhost:1234/
4143
FLAT_TABLES: true
42-
CUSTOM_ENTRYPOINT_COMMAND: "php bin/magento encryption:key:change -k 5AM3SD5SkwT8iwIxL6L1q8XQhzK3wk51; magerun2 config:store:set system/smtp/disable 1; magerun2 config:store:set checkout/options/enable_guest_checkout_login 1"
44+
CUSTOM_ENTRYPOINT_COMMAND: "php bin/magento encryption:key:change -k 5AM3SD5SkwT8iwIxL6L1q8XQhzK3wk51; magerun2 config:store:set system/smtp/disable 1; magerun2 config:store:set checkout/options/enable_guest_checkout_login 1; magerun2 config:store:delete design/head/includes"
4345
ports:
4446
- 3307:3306
4547
- 1234:80
@@ -75,6 +77,7 @@ jobs:
7577
with:
7678
repository: rapidez/rapidez
7779
path: rapidez/rapidez
80+
ref: 4.x
7881

7982
- uses: actions/setup-node@v4
8083
with:
@@ -93,18 +96,27 @@ jobs:
9396
- name: Use rapidez/core from source
9497
run: composer config repositories.core path ../core
9598

99+
- name: Make the Magento version available as env variable
100+
run: echo "MAGENTO_VERSION=${{ matrix.magento-version }}" >> $GITHUB_ENV
101+
96102
- name: Get commit hash and tag of the core
97103
working-directory: ./rapidez/core
98104
run: |
99105
echo "CORE_HASH=$(git symbolic-ref --short HEAD 2>/dev/null || git rev-parse HEAD | sed 's|/|_|g')" >> $GITHUB_ENV
100106
echo "LATEST_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
101107
108+
- name: Get correct version name for require
109+
run: echo "REQUIRE_VERSION=$([[ '${{ env.CORE_HASH }}' =~ ^[0-9]+\.[xX]$ ]] && echo '${{ env.CORE_HASH }}-dev' || echo 'dev-${{ env.CORE_HASH }}')" >> $GITHUB_ENV
110+
102111
- name: Composer require the local rapidez/core
103-
run: composer require rapidez/core:"dev-${{ env.CORE_HASH }} as ${{ env.LATEST_TAG }}"
112+
run: composer require rapidez/core:"${{ env.REQUIRE_VERSION }} as ${{ env.LATEST_TAG }}"
104113

105114
- name: Install Rapidez command
106115
run: php artisan rapidez:install --frontendonly
107116

117+
- name: Publish payment icons
118+
run: php artisan vendor:publish --tag=payment-icons
119+
108120
- name: Install Yarn dependencies
109121
run: npm install -g yarn && yarn
110122

@@ -127,19 +139,30 @@ jobs:
127139
run: php artisan serve &
128140

129141
- name: Run Playwright tests
130-
run: yarn playwright test --shard ${{ matrix.shard }}
142+
run: yarn playwright test
131143

132144
# Screenshots
145+
- name: Collect failed tests
146+
if: (failure() || inputs.update_all_screenshots)
147+
run: yarn playwright test --last-failed --list --reporter=dot --pass-with-no-tests > failed-tests.txt
148+
133149
- name: Update screenshots
134150
if: failure() && matrix.screenshots == true && github.event_name != 'schedule' && !(github.event_name == 'push' && (github.ref_name == 'master' || endsWith(github.ref_name, '.x')))
135-
run: yarn playwright test --update-snapshots --last-failed --reporter=list
151+
run: |
152+
while read -r test_name; do
153+
yarn playwright test "$test_name" --update-snapshots --reporter=list
154+
done < <(awk -F ' › ' 'NF>1{print $2}' failed-tests.txt | sort -u)
155+
156+
- name: Update all screenshots
157+
if: ${{ inputs.update_all_screenshots && matrix.screenshots == true }}
158+
run: yarn playwright test --update-snapshots --reporter=list
136159

137160
- name: Move the screenshots
138-
if: failure() && matrix.screenshots == true && github.event_name != 'schedule' && !(github.event_name == 'push' && (github.ref_name == 'master' || endsWith(github.ref_name, '.x')))
161+
if: (failure() || inputs.update_all_screenshots) && matrix.screenshots == true && github.event_name != 'schedule' && !(github.event_name == 'push' && (github.ref_name == 'master' || endsWith(github.ref_name, '.x')))
139162
run: cp -r tests/playwright/. ../core/tests/playwright/
140163

141164
- name: Commit the screenshots
142-
if: failure() && matrix.screenshots == true && github.event_name != 'schedule' && !(github.event_name == 'push' && (github.ref_name == 'master' || endsWith(github.ref_name, '.x')))
165+
if: (failure() || inputs.update_all_screenshots) && matrix.screenshots == true && github.event_name != 'schedule' && !(github.event_name == 'push' && (github.ref_name == 'master' || endsWith(github.ref_name, '.x')))
143166
uses: stefanzweifel/git-auto-commit-action@v4
144167
with:
145168
commit_message: "[CI] Update Snapshots"

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ phpunit.xml
99
stats.html
1010

1111
# Playwright
12+
.env
1213
node_modules/
1314
/test-results/
1415
/playwright-report/
1516
/blob-report/
1617
/playwright/.cache/
1718
/tests/playwright/**/*-darwin.png
19+
/lighthouse

CHANGELOG.md

Lines changed: 173 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,178 @@
11
# Changelog
22

3-
[Unreleased changes](https://github.com/rapidez/core/compare/4.4.0...4.4.0)
3+
[Unreleased changes](https://github.com/rapidez/core/compare/...4.9.0)
4+
## [4.9.0](https://github.com/rapidez/core/releases/tag/4.9.0) - 2025-12-02
5+
6+
### Added
7+
8+
- Resized path helper SKU support (#1057)
9+
- Fractional product quantities support (#1044)
10+
- allSettled helper (#1078)
11+
12+
### Changed
13+
14+
- Playwright test with the latest Magento versions (#1051)
15+
- Disable inputs on $root.loading (#1039)
16+
17+
### Fixed
18+
19+
- Dutch translation fix (#1055)
20+
- Deprecated warning on null widget class fix (#1058)
21+
- Filter focus state style fixes (#1060)
22+
- Address comparison fix (#1065)
23+
- Remove duplicate search translation (#1067)
24+
- Always give hitsPerPage a default (#1070)
25+
- Improve product in category positions handling (#1071)
26+
- Url filter error fallback (#1081)
27+
- Shipping address fallbacks (#1084)
28+
- Call index import command directly (#1090)
29+
- Special price alignment fix (#1088)
30+
- ObjectDiff fallback (#1077)
31+
- selected_payment_method fallback (#1080)
32+
- iOS autocomplete double click fix (#1083)
33+
34+
## [4.8.0](https://github.com/rapidez/core/releases/tag/4.8.0) - 2025-10-14
35+
36+
### Added
37+
38+
- Playwright attach Lighthouse report (#1036)
39+
- Loader button option (#969)
40+
- Cart quantity debounce (#1046)
41+
- Range slider labels option and clip fix (#1037)
42+
43+
### Changed
44+
45+
- Only show 1 product in sliders on mobile (#1030)
46+
- Also update the cart on error (#1047)
47+
48+
### Fixed
49+
50+
- Category positions fix (#1029)
51+
- Check email availability if it's prefilled (#1033)
52+
- Prevent layout shift listing product names (#1031)
53+
- Crash when custom size has been passed fix (#1032)
54+
- Missing brackets fix (#1041)
55+
- Disable setting guest email when guest checkout is disabled (#1040)
56+
- Playwright publish payment icons (#1045)
57+
- Unknown turbo-frame error fix (#1048)
58+
59+
## [4.7.6](https://github.com/rapidez/core/releases/tag/4.7.6) - 2025-10-02
60+
61+
### Fixed
62+
63+
- Remove legacy Vite config (#1020)
64+
- Defer cart watcher to next tick to avoid race condition (#1006)
65+
- Blade components update removing the disabled state (#1028)
66+
- Playwright Magento version tag (#1035)
67+
68+
## [4.7.5](https://github.com/rapidez/core/releases/tag/4.7.5) - 2025-09-26
69+
70+
### Fixed
71+
72+
- Use npm workspaces for Rapidez dependencies (#1026)
73+
74+
## [4.7.4](https://github.com/rapidez/core/releases/tag/4.7.4) - 2025-09-26
75+
76+
### Fixed
77+
78+
- Playwright wait for footer on success page (#1024)
79+
- Package.json name and version (#1025)
80+
81+
## [4.7.3](https://github.com/rapidez/core/releases/tag/4.7.3) - 2025-09-26
82+
83+
### Fixed
84+
85+
- Playwright test fix (#1023)
86+
87+
## [4.7.2](https://github.com/rapidez/core/releases/tag/4.7.2) - 2025-09-26
88+
89+
### Fixed
90+
91+
- Slider arrows color fix (#1017)
92+
- Visual swatch filters not showing fix (#1016)
93+
- Autocomplete focus on mobile fix (#1018)
94+
- Playwright use screenshot method everywhere (#1022)
95+
- GraphQL mutation notification event fix (#1021)
96+
- Fire login event when logged in customer changes (#1019)
97+
98+
## [4.7.1](https://github.com/rapidez/core/releases/tag/4.7.1) - 2025-09-18
99+
100+
### Fixed
101+
102+
- Playwright checkout step wait fix (#1015)
103+
104+
## [4.7.0](https://github.com/rapidez/core/releases/tag/4.7.0) - 2025-09-17
105+
106+
### Added
107+
108+
- Checkbox and radio product option inputs (#1013)
109+
110+
### Fixed
111+
112+
- Ignore .env for local Playwright runs (ed935d9)
113+
- Custom cart attributes label fix (#1009)
114+
- Recently viewed widget sorting (#1014)
115+
116+
## [4.6.3](https://github.com/rapidez/core/releases/tag/4.6.3) - 2025-09-16
117+
118+
### Fixed
119+
120+
- Playwright unique blob report names (#1012)
121+
122+
## [4.6.2](https://github.com/rapidez/core/releases/tag/4.6.2) - 2025-09-16
123+
124+
### Fixed
125+
126+
- Playwright checkout page optional login possibility (#1011)
127+
128+
## [4.6.1](https://github.com/rapidez/core/releases/tag/4.6.1) - 2025-09-16
129+
130+
### Fixed
131+
132+
- Set gallery fetchpriority high (c5d82df)
133+
- Test with a clean Magento config (#1007)
134+
- Playwright extendable screenshot options (#1010)
135+
136+
## [4.6.0](https://github.com/rapidez/core/releases/tag/4.6.0) - 2025-09-12
137+
138+
### Added
139+
140+
- Playwright Lighthouse score tests (#1003)
141+
- Recently viewed widget + widget fixes (#1002)
142+
143+
### Fixed
144+
145+
- Listing min height preventing layout shifts (#1000)
146+
- Use option instead of argument for index call (#1001)
147+
- Fix null check for auth (#1004)
148+
149+
## [4.5.0](https://github.com/rapidez/core/releases/tag/4.5.0) - 2025-09-10
150+
151+
### Added
152+
153+
- Productlist items slot (#978)
154+
- Minicart row total including tax price (#981)
155+
- Playwright update all screenshots option (#997)
156+
157+
### Changed
158+
159+
- Uniform Blade file naming with dashes (#955, #990)
160+
- Playwright only update screenshots on the last failed (#991)
161+
- Drop PHP 8.2 Playwright tests (#987)
162+
- Playwright tests with the latest Magento patches (#992)
163+
- New frontend of rapidez/reviews (#983)
164+
- More flexible productlist component (#996)
165+
- Initial product swatches rendering from Blade (#982)
166+
167+
### Fixed
168+
169+
- Skip bugged Laravel version (#989)
170+
- Category positions script fix + fallback fix (#984)
171+
- Subfolder store image location fix (#993)
172+
- Success page login required to view order fallback (#980)
173+
- Prevent split on category_lvl1 reference (#998)
174+
- Playwright failed test screenshots in all browsers (#999)
175+
4176
## [4.4.0](https://github.com/rapidez/core/releases/tag/4.4.0) - 2025-08-15
5177

6178
### Added

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
"laravel/scout": "^10.14",
2929
"lcobucci/clock": "^2.0|^3.2",
3030
"lcobucci/jwt": "^4.0|^5.3",
31-
"rapidez/blade-components": "^1.10",
31+
"rapidez/blade-components": "^1.11",
3232
"rapidez/blade-directives": "^1.1",
33-
"rapidez/laravel-multi-cache": "^2.0",
33+
"rapidez/laravel-multi-cache": "^2.1",
3434
"rapidez/laravel-scout-elasticsearch": "^1.0",
3535
"tormjens/eventy": "^0.8"
3636
},
@@ -70,7 +70,7 @@
7070
}
7171
},
7272
"conflict": {
73-
"rapidez/reviews": "<3.0"
73+
"rapidez/reviews": "<4.1"
7474
},
7575
"scripts": {
7676
"analyse": "phpstan --memory-limit=256M"

config/rapidez/frontend.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
'Magento\Catalog\Block\Category\Widget\Link' => Rapidez\Core\Widgets\ProductAndCategoryLink::class,
5858
'Magento\Catalog\Block\Product\Widget\Link' => Rapidez\Core\Widgets\ProductAndCategoryLink::class,
5959
'Magento\Cms\Block\Widget\Page\Link' => Rapidez\Core\Widgets\PageLink::class,
60+
'Magento\Catalog\Block\Widget\RecentlyViewed' => 'rapidez::widget.recently-viewed',
6061
],
6162

6263
'view_only_widget' => \Rapidez\Core\Widgets\ViewOnly::class,

config/rapidez/magento-defaults.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
'catalog/frontend/flat_catalog_product' => '0',
77
'catalog/frontend/grid_per_page' => '12',
88
'catalog/frontend/show_swatches_in_product_list' => '1',
9+
'catalog/recently_products/viewed_count' => '5',
910
'catalog/seo/category_url_suffix' => '.html',
1011
'catalog/seo/product_url_suffix' => '.html',
1112
'cataloginventory/item_options/backorders' => '0',
1213
'cataloginventory/options/show_out_of_stock' => '0',
1314
'checkout/cart/redirect_to_cart' => '0',
15+
'checkout/options/guest_checkout' => '1',
1416
'currency/options/default' => 'USD',
1517
'customer/address/company_show' => 'opt',
1618
'customer/address/fax_show' => '',
@@ -23,6 +25,8 @@
2325
'customer/address/taxvat_show' => '',
2426
'customer/address/telephone_show' => 'req',
2527
'customer/create_account/vat_frontend_visibility' => '0',
28+
'customer/password/minimum_password_length' => '8',
29+
'customer/password/required_character_classes_number' => '3',
2630
'design/search_engine_robots/default_robots' => 'INDEX,FOLLOW',
2731
'general/country/default' => 'US',
2832
'general/locale/code' => 'en_US',
@@ -37,6 +41,4 @@
3741
'trans_email/ident_general/email' => 'owner@example.com',
3842
'web/secure/base_url' => '{{unsecure_base_url}}',
3943
'web/url/catalog_media_url_format' => 'hash',
40-
'customer/password/required_character_classes_number' => '3',
41-
'customer/password/minimum_password_length' => '8',
4244
];

lang/nl.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
"Place order": "Bestelling plaatsen",
6565
"Please enter a shipping address first": "Voer eerst een verzendadres in",
6666
"Please log in": "Log hier in",
67+
"Please log in to view the status of your order": "Log in om de orderstatus te bekijken",
6768
"Popular products": "Populaire producten",
6869
"Postcode": "Postcode",
6970
"Prefix": "Aanhef",
@@ -80,6 +81,7 @@
8081
"Reset filters": "Filters resetten",
8182
"Search": "Zoeken",
8283
"Search for": "Zoeken naar",
84+
"No selection": "Geen selectie",
8385
"Select": "Selecteer",
8486
"Shipping": "Verzending",
8587
"Shipping & billing address": "Verzend- en factuuradres",
@@ -116,7 +118,7 @@
116118
"We care about the protection of your data. Read our": "Wij geven om de bescherming van uw gegevens. Lees onze",
117119
"We found other products you might like!": "We hebben andere producten gevonden die je misschien leuk vindt!",
118120
"We will get to work for you right away": "Wij gaan meteen aan de slag",
119-
"We will send a confirmation of your order to": "Wij zullen een confirmatie sturen naar",
121+
"We will send a confirmation of your order to": "Wij zullen een bevestiging sturen naar",
120122
"What are you looking for?": "Waar ben je naar op zoek?",
121123
"Wishlist": "Wensenlijst",
122124
"Yes": "Ja",

0 commit comments

Comments
 (0)