Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
800 commits
Select commit Hold shift + click to select a range
49ee875
Revert MRT flag
shethj Aug 25, 2025
deb3091
Feat: Consume new OAS Isomorphic SDK (@W-19105545@) (#2879)
joeluong-sfcc Aug 25, 2025
2427469
Exit workflow if app validation fails
shethj Aug 25, 2025
8de8b88
Fix docs
shethj Aug 25, 2025
4a96805
Fix project key
shethj Aug 25, 2025
337867e
Merge branch 'develop' into bugfix/a11y-snapshot
shethj Aug 25, 2025
05ba240
Merge pull request #3167 from SalesforceCommerceCloud/feature/ci-link…
shethj Aug 26, 2025
5a33717
Merge branch 'develop' into feature/ci-setup-env
shethj Aug 26, 2025
585a109
Merge pull request #3180 from SalesforceCommerceCloud/bugfix/a11y-sna…
shethj Aug 26, 2025
b7468b2
Merge branch 'develop' into feature/ci-setup-env
shethj Aug 26, 2025
2b000eb
Merge pull request #2987 from SalesforceCommerceCloud/feature/ci-setu…
shethj Aug 26, 2025
a93ba81
[CI workflow] Send Slack notification to multiple channels (@W-194328…
vmarta Aug 26, 2025
5ea2193
Inject sfdc_user_agent request header into all SCAPI requests (@W-184…
adamraya Aug 26, 2025
f404a4b
Bump max bundle size (#3191)
shauryemahajanSF Aug 27, 2025
60d9a47
@W-18891305 MULTISHIP merge to develop (#3056)
patricksullivansf Aug 27, 2025
137f6ca
Apply more feedback
jeremy-jung1 Aug 27, 2025
cec8762
linting
jeremy-jung1 Aug 27, 2025
a4ac6fe
more linting
jeremy-jung1 Aug 27, 2025
2d25d59
Merge branch 'develop' into feature/opentelemetry
jeremy-jung1 Aug 27, 2025
74e60ce
docs: Add missing period to JSDoc comment in page-designer utils
sf-xingquan-jin Aug 27, 2025
013da23
Pin package version for @testing-library/user-event
shethj Aug 27, 2025
c31d3ff
Set retail-react-app-test-project to be non-extensible
shethj Aug 27, 2025
28125a7
Update changelog
shethj Aug 27, 2025
385aee2
Update changelog
shethj Aug 27, 2025
3c743be
Generate project outside the monorepo
shethj Aug 27, 2025
db85985
@W-19442561 - Fix Incorrectly Disabled Continue to Shipping Method Bu…
shauryemahajanSF Aug 27, 2025
c0d7ff4
W-19330454 - Release PWA Kit 3.12.0-preview.2 (#3193)
vcua-mobify Aug 27, 2025
6e7cbe8
Comment out problematic job
jeremy-jung1 Aug 28, 2025
4d40c03
Merge branch 'develop' into feature/opentelemetry
jeremy-jung1 Aug 28, 2025
f12c6f5
Update e2e-pr.yml
jeremy-jung1 Aug 28, 2025
91daa60
Merge branch 'feature/opentelemetry' of github.com:SalesforceCommerce…
jeremy-jung1 Aug 28, 2025
59f3c9b
Merge pull request #3133 from SalesforceCommerceCloud/feature/opentel…
jeremy-jung1 Aug 28, 2025
75fc7d0
@W-19443375,@W-19350149 MULTISHIP fix address function mismatch and o…
patricksullivansf Aug 28, 2025
9a69da3
@W-19451314 - Add ShipmentId to Create Shipment Body (#3211)
shauryemahajanSF Aug 28, 2025
9f5757f
Update CWD paths for generated tests
shethj Aug 28, 2025
72d4070
Merge branch 'develop' into bugfix/pin-testing-library-version
shethj Aug 28, 2025
f776671
CHeck test files
shethj Aug 28, 2025
010a026
[`develop` branch] Bump up the dev versions (#3208)
vmarta Aug 28, 2025
cd96d3a
Enable e2e-PR workflow
shethj Aug 28, 2025
9d2839b
Check retail app home
shethj Aug 28, 2025
56c68fc
Log retail_app_home
shethj Aug 28, 2025
a3236bd
Print MRT target json
shethj Aug 28, 2025
156ed77
skip browser installs
shethj Aug 28, 2025
40e0e15
Fix retail app home
shethj Aug 28, 2025
f821d8f
Move setting retail app home to run tests step
shethj Aug 28, 2025
b0deced
Remove node_modules from checks
shethj Aug 28, 2025
ad6147f
Set retail app home to process.env not GITHUB_ENV
shethj Aug 28, 2025
ab4433f
Enable tests
shethj Aug 28, 2025
f292b8f
Remove logging the json
shethj Aug 28, 2025
1ad9dbe
Uncomment the test run
shethj Aug 28, 2025
4326a71
Temp reduce retries
shethj Aug 28, 2025
fbe0358
skip telemetry and a11y tests
shethj Aug 29, 2025
ac06813
Add fallback to validate script
shethj Aug 29, 2025
f7bfc75
Rewrite script to propagate errors
shethj Aug 29, 2025
b2c1467
Fix guest shopper checkout
shethj Aug 29, 2025
1f02576
Fix linting
shethj Aug 29, 2025
297b9e6
Update labels on checkout page
shethj Aug 29, 2025
bb7f00e
Restore retry
shethj Aug 29, 2025
8cdefff
Move snapshots to slas client specific dir
shethj Aug 29, 2025
5eee0dd
Split a11y snapshots for public/private clients
shethj Aug 29, 2025
60f380c
Update e2e workflow a11y command
shethj Aug 29, 2025
8706a68
Fix button label for payment info
shethj Aug 29, 2025
0c7c148
Fix validation script falirue
shethj Aug 29, 2025
f6db483
Merge branch 'develop' into t/cc-sharks/W-19441308/v1
sf-xingquan-jin Aug 29, 2025
8d6aa7e
Merge branch 'develop' into bugfix/pin-testing-library-version
vmarta Aug 29, 2025
a087cbd
Update package lock files
vmarta Aug 29, 2025
17652c6
Merge pull request #3214 from SalesforceCommerceCloud/restore-per-pr-e2e
shethj Aug 29, 2025
967e3ce
Make sure that the generated-projects folder is created
vmarta Aug 29, 2025
8cebd5d
@W-19349040 MULTISHIP fix form default delivery option selection (#3217)
patricksullivansf Aug 29, 2025
8726cfc
Further refactoring
vmarta Aug 29, 2025
2b69e7f
Fix count_deps action so it knows where the generated project is
vmarta Aug 29, 2025
94358dc
Merge branch 'develop' into bugfix/pin-testing-library-version
vmarta Aug 29, 2025
d671341
Looks like on windows, we can run bash shell with front slashes
vmarta Aug 29, 2025
e9e2553
Merge branch 'develop' into t/cc-sharks/W-19441308/v1
sf-xingquan-jin Aug 29, 2025
cd90148
@ W-19450629 feat: remove quantity selector from shipping methods pr…
sf-henry-semaganda Aug 29, 2025
53b251f
Fix non-extensible template to use correct passwordless login callbac…
vcua-mobify Aug 29, 2025
8d788f5
Merge branch 'develop' into bugfix/pin-testing-library-version
shethj Aug 29, 2025
4a94b4d
Debug validation
shethj Sep 2, 2025
432070c
Debug validation
shethj Sep 2, 2025
ab3c61e
Debug validation
shethj Sep 2, 2025
df995c8
Remove console.logs
shethj Sep 2, 2025
3dc2ae7
Flip generator response options
shethj Sep 2, 2025
8b3824a
Update hover link test
shethj Sep 2, 2025
3f7e05b
skip failing test
shethj Sep 2, 2025
6df7e68
Lint fix
shethj Sep 2, 2025
f191fc9
Merge branch 'develop' into t/cc-sharks/W-19441308/v1
sf-xingquan-jin Sep 2, 2025
a6d3dfe
Document test skip
shethj Sep 2, 2025
7bd6257
Merge pull request #3200 from SalesforceCommerceCloud/t/cc-sharks/W-1…
sf-xingquan-jin Sep 2, 2025
7326ee2
Merge branch 'develop' into bugfix/pin-testing-library-version
shethj Sep 2, 2025
426a97c
Remove process.exit
shethj Sep 2, 2025
e0e28a4
Throw err
shethj Sep 2, 2025
51a5f31
Remove debug step
shethj Sep 2, 2025
ac63b3a
Check if monorepo is a dev version before publishing to npm (#3210)
vcua-mobify Sep 2, 2025
bcd1f65
Merge branch 'develop' into bugfix/pin-testing-library-version
shethj Sep 2, 2025
7df11fe
Merge pull request #3204 from SalesforceCommerceCloud/bugfix/pin-test…
shethj Sep 2, 2025
656afe2
Allow manually running e2e-pr with inputs
shethj Sep 3, 2025
9a0fe8e
Add more readable names to inputs
shethj Sep 3, 2025
6e46b6e
Update inputs description
shethj Sep 3, 2025
ff4ad6c
Update cloud origin for update-env step
shethj Sep 3, 2025
77837c0
log credentials
shethj Sep 3, 2025
bf2d191
debug push to mrt
shethj Sep 3, 2025
ff382d6
Fix variables for MRT credentials
shethj Sep 3, 2025
f8cc30d
Skip playwright install if tests skipped
shethj Sep 3, 2025
9af5caf
Fix usage for Object.hasOwn
shethj Sep 3, 2025
5142a48
Fix linting
shethj Sep 3, 2025
5b38bcf
update the mcp tool name and readme
wei-liu-sf Sep 3, 2025
2a4cc6a
Fix: Don't pass `code_challenge` if its undefined in `getPasswordRese…
joeluong-sfcc Sep 3, 2025
6ca9fe8
Merge branch 'develop' into W-19507083-renaming-mcp-tools_wliu
wei-liu-sf Sep 3, 2025
9a4dfb3
resize the images
wei-liu-sf Sep 3, 2025
db89f40
Merge branch 'W-19507083-renaming-mcp-tools_wliu' of https://github.c…
wei-liu-sf Sep 3, 2025
5c046bb
update CHANGELOG.md
wei-liu-sf Sep 3, 2025
0683a5a
@W-19364221 - Handle Removal of Last Address for Registered (#3231)
shauryemahajanSF Sep 3, 2025
199bd68
Merge branch 'develop' into W-19507083-renaming-mcp-tools_wliu
wei-liu-sf Sep 3, 2025
475d330
@W-19507083 -- Normalize the mcp tool name and Update README
wei-liu-sf Sep 3, 2025
8a0b696
@W-19327219: Update in isolation tests in MRT reference app (#3172)
rahulkumawat1 Sep 3, 2025
0b15688
Cleanup of tool
snilakandan13 Sep 3, 2025
5bf8d87
Merge conflicts
snilakandan13 Sep 3, 2025
26da5af
Added tests
snilakandan13 Sep 3, 2025
540c8fb
updated tool
snilakandan13 Sep 3, 2025
679097e
Gracefully handle when some config.app.* properties are missing (@W-1…
vmarta Sep 3, 2025
68d1dfb
@W-19364130 feat: fix shipping costs summary mode pricing (#3240)
sf-henry-semaganda Sep 3, 2025
2f3c013
Handle OS specific filepaths in tests
shethj Sep 3, 2025
2611018
Merge branch 'develop' into hotfix/validate-project-type-err
shethj Sep 3, 2025
ca97b93
Merge branch 'develop' into feature/debug-pr-e2e
shethj Sep 3, 2025
36ffe82
@W-19330454@ - Release PWA Kit 3.12.0-preview.3 (#3229)
vcua-mobify Sep 3, 2025
bd3f171
Merge branch 'develop' into t/commerce/W-19406761/cleanupOfGitVersion…
snilakandan13 Sep 4, 2025
2c5ba77
Merge pull request #3241 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Sep 4, 2025
7771f69
Enable OTEL test
shethj Sep 4, 2025
c0f4de8
Merge branch 'develop' into hotfix/validate-project-type-err
shethj Sep 4, 2025
fddc92b
Bump up to final/stable versions
vmarta Sep 4, 2025
68c5988
Update package-lock.json
vmarta Sep 4, 2025
32b104c
Update changelog files
vmarta Sep 4, 2025
0099bec
Sync the mcp package with develop branch
vmarta Sep 4, 2025
585e199
Remove this warning message (#3244)
vmarta Sep 4, 2025
8fe2805
Merge pull request #3246 from SalesforceCommerceCloud/vm/3.12.0
vmarta Sep 4, 2025
af4a01c
Merge pull request #3237 from SalesforceCommerceCloud/hotfix/validate…
shethj Sep 4, 2025
f0ea654
Merge branch 'develop' into vm/merge-3.12.0-to-develop
vmarta Sep 5, 2025
ff4ceb6
Bump up to the next dev versions
vmarta Sep 5, 2025
154e0ef
Update changelog files
vmarta Sep 5, 2025
e37345c
Cart pick up section changes to match figma
aditek-sf Sep 5, 2025
7950f32
Linting fixes
aditek-sf Sep 5, 2025
cbc7606
Updated bundle size
aditek-sf Sep 5, 2025
bce01ea
Refactoring parameter names
snilakandan13 Sep 5, 2025
083a542
Merge pull request #3247 from SalesforceCommerceCloud/vm/merge-3.12.0…
vmarta Sep 5, 2025
213040c
Merge branch 'develop' into t/commerce/spark/W-19364102/CartPickupFig…
aditek-sf Sep 8, 2025
7175958
MCP tool
snilakandan13 Sep 8, 2025
ad0f286
Merge branch 'develop' into t/commerce/W-19545821/updateToolDescription
snilakandan13 Sep 8, 2025
4cbb360
Merge pull request #3254 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Sep 8, 2025
8a27112
Merge branch 'develop' into t/commerce/spark/W-19364102/CartPickupFig…
aditek-sf Sep 9, 2025
05dcb84
Re-designed layout post UX re-alignment
aditek-sf Sep 10, 2025
b02a464
Updated changelong.md and addressed comments
aditek-sf Sep 10, 2025
3a66a3f
Merge pull request #3248 from SalesforceCommerceCloud/t/commerce/spar…
aditek-sf Sep 10, 2025
57bb51e
@W-19347548 feat: Guest users - add modal warning for potential addre…
sf-henry-semaganda Sep 11, 2025
1921b79
Merge branch 'develop' into feature/debug-pr-e2e
shethj Sep 12, 2025
b22f828
Merge pull request #3233 from SalesforceCommerceCloud/feature/debug-p…
shethj Sep 12, 2025
e2a6ae9
@W-19347548 feat: Guest users - update modal warning label for potent…
sf-henry-semaganda Sep 12, 2025
cbb8013
Update mrt-target-manager to add cleanup command
shethj Sep 15, 2025
c26997d
Added unit tests for cleanup command
shethj Sep 15, 2025
b3eb999
Added workflow to run MRT pool cleanup
shethj Sep 15, 2025
ee5b7d1
Add a warning about MRT cleanup to e2e-pr workflow
shethj Sep 15, 2025
be8b40d
Extract 60mins
shethj Sep 15, 2025
4ea115a
@W-19593698 Search Enhancements (#3271)
sf-kyle-wright Sep 15, 2025
22cb244
Merge branch 'develop' into feature/mrt-pool-cleanup
shethj Sep 16, 2025
c3c0bb7
Remove checks for missing ci info
shethj Sep 16, 2025
011cc3e
Merge pull request #3307 from SalesforceCommerceCloud/feature/mrt-poo…
shethj Sep 16, 2025
e6c0f3e
@W-19151918: 🚀 Shopper Agent Experience v3.0 ( GA ) (#3259)
sf-avinash-kasipathy Sep 17, 2025
54ff696
Sync the config/utils.js file in the generator (#3331)
vmarta Sep 19, 2025
b46eab6
Release PWA Kit 3.13.0-preview.0
shethj Sep 22, 2025
886166d
@W-19679886 - Added telemetry to MCP (#3327)
aditek-sf Sep 22, 2025
93931af
@W-19707571 MULTISHIP consolidate into pickup address copy (#3333)
patricksullivansf Sep 22, 2025
ac8deda
@W-19679886 - Added telemetry to MCP (#3327)
aditek-sf Sep 22, 2025
53d22c5
Merge branch 'develop' into 3.13.0-preview.1
shethj Sep 22, 2025
895a915
W- 19707843 - Only Show Multiship when Multiple Items in Cart (#3336)
shauryemahajanSF Sep 22, 2025
422e55f
Bump package versions to 3.13.0-preview.1
shethj Sep 22, 2025
dcc9846
Update changelog for pwa-kit-create-app
shethj Sep 22, 2025
3c12ab5
Merge Choice of Bonus Product feature branch into `develop` (#3292)
sf-shikhar-prasoon Sep 22, 2025
e5122d1
Merge pull request #3338 from SalesforceCommerceCloud/3.13.0-preview.1
shethj Sep 22, 2025
6d7f571
Merge Choice of Bonus Product feature branch into `develop` (#3292)
sf-shikhar-prasoon Sep 22, 2025
0cb4d27
Bump package versions to 3.13.0-preview.2
shethj Sep 22, 2025
f296179
Merge pull request #3340 from SalesforceCommerceCloud/3.13.0-preview.2
shethj Sep 22, 2025
e1573fe
Committing for fixing mcp package
snilakandan13 Sep 23, 2025
a9b9b4b
Merge pull request #3341 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Sep 23, 2025
26fee19
Bump package versions to 3.13.0-preview.3
shethj Sep 23, 2025
f82525c
Update changelogs
shethj Sep 23, 2025
3420b54
Merge pull request #3342 from SalesforceCommerceCloud/3.13.0-preview.3
shethj Sep 23, 2025
d11a6b3
Fixing the NPM release
snilakandan13 Sep 23, 2025
582299f
Merge pull request #3343 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Sep 23, 2025
6bf2862
Bump package versions to 3.13.0-preview.4
shethj Sep 23, 2025
4140bf4
Update changelog for retail template
shethj Sep 23, 2025
91f8eb6
Merge pull request #3344 from SalesforceCommerceCloud/3.13.0-preview.4
shethj Sep 23, 2025
8cd65b0
@W-19649984 - Move Config.js (#3346)
shauryemahajanSF Sep 23, 2025
83f3c90
@W-19718906 bug: duplicate bonus products when store pickup for same …
sf-shikhar-prasoon Sep 24, 2025
2c2df80
@W-19722548: Work around bonus products not being able to be moved be…
ddiazccrz Sep 24, 2025
de1af0a
@W-19727106 Bug Fix: All variants are viewable even though only 1 var…
sf-shikhar-prasoon Sep 24, 2025
fe14c52
fix: adding domain url change (#3351)
sf-avinash-kasipathy Sep 24, 2025
27b0949
fix: adding domain url change (#3351)
sf-avinash-kasipathy Sep 24, 2025
3aa166d
Bump package versions to 3.13.0-preview.5
shethj Sep 24, 2025
cdee908
Bump changelog version for retail template
shethj Sep 24, 2025
27b8f07
Test notification
jeremy-jung1 Sep 24, 2025
acb55d9
Merge branch 'develop' into add-slack-notification-for-extra-features…
jeremy-jung1 Sep 24, 2025
c0aef09
Merge pull request #3353 from SalesforceCommerceCloud/3.13.0-preview.5
shethj Sep 24, 2025
9407da4
Just have it scheduled
jeremy-jung1 Sep 24, 2025
b5e3775
Merge branch 'add-slack-notification-for-extra-features-e2e' of githu…
jeremy-jung1 Sep 24, 2025
8a753ae
@W-19454052 feat: fix behavior where sometimes shipping options don't…
sf-henry-semaganda Sep 24, 2025
154d80b
Merge branch 'develop' into add-slack-notification-for-extra-features…
jeremy-jung1 Sep 24, 2025
03b8ab4
Bump version for 3.13.0 release
shethj Sep 25, 2025
f9ba7d0
Merge pull request #3354 from SalesforceCommerceCloud/add-slack-notif…
jeremy-jung1 Sep 25, 2025
49a48fa
@W-19743729 remove shipment dropdown from cart, put orphan bonus prod…
sf-shikhar-prasoon Sep 25, 2025
d78cd8d
Update release date for 3.13.0 in changelogs
shethj Sep 25, 2025
aec9941
Merge pull request #3356 from SalesforceCommerceCloud/3.13.0
shethj Sep 25, 2025
a95b0c5
Merge branch 'develop' into sync-develop-with-3.13.x
shethj Sep 26, 2025
5a4c620
Merge pull request #3361 from SalesforceCommerceCloud/sync-develop-wi…
shethj Sep 26, 2025
c5578f8
Bump dev versions to 3.14.0-dev
shethj Sep 26, 2025
2780600
Merge pull request #3362 from SalesforceCommerceCloud/feature/bump-ve…
shethj Sep 26, 2025
0def699
fix: localize url for checkout button (#3355)
mmccullom-sf Sep 29, 2025
bd29a86
enhance telemetry
wei-liu-sf Oct 1, 2025
be695ed
add tool name to event name
wei-liu-sf Oct 1, 2025
a429fc6
@W-19689304 - Merge pull request #3369 from SalesforceCommerceCloud/W…
wei-liu-sf Oct 1, 2025
516a1e6
Replace aws-serverless-express with @h4ad/serverless-adapter (#3372)
kieran-sf Oct 1, 2025
0d4718f
@W-19758448 Create PWA-Kit MCP Rules to guide the agent into optimal …
patricksullivansf Oct 3, 2025
2128c11
@W-19624822 feat: eliminate the extra parameters exposed through crea…
sf-henry-semaganda Oct 6, 2025
acffa77
Update the Readme document for MCP
snilakandan13 Oct 7, 2025
558af7b
skip changelog
snilakandan13 Oct 7, 2025
6d49691
Bug Fix for paths
aditek-sf Oct 7, 2025
e1017db
Merge pull request #3378 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Oct 7, 2025
afcd52d
Updated changelog.md
aditek-sf Oct 7, 2025
47ef3d7
Initial Commit
bendvc Oct 7, 2025
7f44fa7
Merge branch 'develop' into bendvc/W-19811971_encode-address-name
bendvc Oct 7, 2025
e39b3cd
PR Feedback
bendvc Oct 7, 2025
83c0bb7
Merge pull request #3380 from SalesforceCommerceCloud/bendvc/W-198119…
bendvc Oct 8, 2025
3fbe03f
Merge branch 'develop' into t/commerce/spark/W-19840602/fixnodemodule…
aditek-sf Oct 8, 2025
3b622c4
Merge pull request #3379 from SalesforceCommerceCloud/t/commerce/spar…
snilakandan13 Oct 8, 2025
52cccb4
@W-19689163 MCP tool create page/component route responses through th…
patricksullivansf Oct 8, 2025
a62981e
API explorer Tool
snilakandan13 Oct 9, 2025
1d2a9bc
Updated change log
snilakandan13 Oct 9, 2025
c6a4968
Committing readme
snilakandan13 Oct 9, 2025
a4f135e
Linter errors
snilakandan13 Oct 9, 2025
a2a76e1
Merge branch 'develop' into t/commerce/W-19450028/apiExplorerTool
snilakandan13 Oct 9, 2025
73a0226
fix: update package-lock.json to sync with package.json
snilakandan13 Oct 9, 2025
9d6ff42
Committing for linter changes
snilakandan13 Oct 9, 2025
5c05e07
Review comments
snilakandan13 Oct 9, 2025
9e78531
Review comments
snilakandan13 Oct 9, 2025
308beec
Review comments
snilakandan13 Oct 9, 2025
79169aa
Updating test
snilakandan13 Oct 9, 2025
051adf1
Review comments
snilakandan13 Oct 9, 2025
4eed801
Review comments
snilakandan13 Oct 9, 2025
5e29322
Review comments
snilakandan13 Oct 9, 2025
02852fd
Merge pull request #3385 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Oct 9, 2025
22a2191
skip changelog
sf-madhuri-uppu Oct 8, 2025
7dd4dc4
Add einstein suggestions
sf-madhuri-uppu Oct 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
description: QA Tests for Template Retail React App Test Generation Rules
globs: ["packages/template-retail-react-app/app/components/**/*-underTest.test.{js,jsx}"]
alwaysApply: false
---
# QA Tests for Template Retail React App Test Patterns

## Purpose
This file contains test cases to verify that the `unit-tests-template-retail-react-app.mdc` rule effectively guides the creation of consistent and robust React component tests.

## Test Cases

### Test 1: DrawerMenu Component Test Generation
**Workflow:** Generate → Analyze → Cleanup (NO test execution)

**Steps:**
1. **Generate:** Create new test file `drawer-menu-underTest.test.js` (colocated with existing drawer-menu component at `packages/template-retail-react-app/app/components/drawer-menu/`)
2. **Apply Rules:** Use `@/testing` (located at `.cursor/rules/testing/unit-tests-generic.mdc` and `.cursor/rules/testing/unit-tests-template-retail-react-app.mdc`)
3. **Prompt:** "Write unit test for drawer-menu component"
4. **Analyze:** Perform static code analysis against verification patterns (see below)
5. **Cleanup:** Delete the generated test file after validation

**Important:** DO NOT run the test after creation - skip test execution entirely

**Verify that the newly generated test file follows these patterns:**
1. Test Setup
- Uses `renderWithProviders` from `@salesforce/retail-react-app/app/utils/test-utils`
- Gets user events from return value: `const {user} = renderWithProviders(...)`
- Includes `beforeEach(() => jest.clearAllMocks())`

2. Import Structure
- Does NOT import `userEvent` directly
- Uses existing mock data from `@salesforce/retail-react-app/app/mocks/`
- Imports `screen` from `@testing-library/react`

3. Test Organization
- Uses `describe` block with component name
- Individual `test` or `it` blocks for different scenarios
- Async/await patterns for user interactions

4. API Mocking
- Uses `prependHandlersToServer` or `msw` for API mocking when needed

**Failure Indicators:**
- Direct import of `userEvent` from `@testing-library/user-event`
- Using custom render function instead of `renderWithProviders`
- Creating new mock data instead of using existing mocks
- Missing Commerce SDK context providers
- Not using async/await for user interactions

**Expected Output:**
Provide a clear, structured report based on **static code analysis only** (no test execution):
- ✅ **PASS** or ❌ **FAIL** for each verification point
- Specific line numbers and code snippets for any failures
- Summary: `X/Y patterns followed correctly`
- Overall result: **RULES EFFECTIVE** or **RULES NEED IMPROVEMENT**

**Cleanup:**
- Delete the generated test file `drawer-menu-underTest.test.js` after QA validation is complete
65 changes: 60 additions & 5 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,9 +1,64 @@
# https://help.github.com/en/enterprise/2.17/user/articles/about-code-owners

# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
# Global directories
.cursor/ @SalesforceCommerceCloud/mobifyers
.github/ @SalesforceCommerceCloud/mobifyers
e2e/ @SalesforceCommerceCloud/mobifyers
scripts/ @SalesforceCommerceCloud/mobifyers

# Package-specific ownership
packages/commerce-sdk-react/ @SalesforceCommerceCloud/mobifyers
packages/internal-lib-build/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-create-app/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-dev/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-mcp/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-react-sdk/ @SalesforceCommerceCloud/mobifyers
packages/pwa-kit-runtime/ @SalesforceCommerceCloud/mobifyers
packages/template-express-minimal/ @SalesforceCommerceCloud/mobifyers
packages/template-mrt-reference-app/ @SalesforceCommerceCloud/mobifyers
packages/template-retail-react-app/ @SalesforceCommerceCloud/mobifyers
packages/template-typescript-minimal/ @SalesforceCommerceCloud/mobifyers
packages/test-commerce-sdk-react/ @SalesforceCommerceCloud/mobifyers

# Root configuration and documentation files
/README.md @SalesforceCommerceCloud/mobifyers
/CODE_OF_CONDUCT.md @SalesforceCommerceCloud/mobifyers
/CONTRIBUTING.md @SalesforceCommerceCloud/mobifyers
/SECURITY.md @SalesforceCommerceCloud/mobifyers
/STATEMENTS.md @SalesforceCommerceCloud/mobifyers
/TERMS_OF_USE.md @SalesforceCommerceCloud/mobifyers
/LICENSE @SalesforceCommerceCloud/mobifyers
/.eslintrc.js @SalesforceCommerceCloud/mobifyers
/.gitattributes @SalesforceCommerceCloud/mobifyers
/.gitignore @SalesforceCommerceCloud/mobifyers
/.prettierignore @SalesforceCommerceCloud/mobifyers
/.prettierrc.yaml @SalesforceCommerceCloud/mobifyers
/lerna.json @SalesforceCommerceCloud/mobifyers
/package.json @SalesforceCommerceCloud/mobifyers
/package-lock.json @SalesforceCommerceCloud/mobifyers
/playwright.config.js @SalesforceCommerceCloud/mobifyers
/.git2gus/ @SalesforceCommerceCloud/mobifyers

# Specific feature file ownership (overrides package-level rules above)

# BOPIS (Buy Online Pick up In Store) feature files - PR #2646
packages/template-retail-react-app/app/components/store-display/ @SalesforceCommerceCloud/cc-spark
packages/template-retail-react-app/app/hooks/use-selected-store.js @SalesforceCommerceCloud/cc-spark
packages/template-retail-react-app/app/hooks/use-pickup-shipment.js @SalesforceCommerceCloud/cc-spark
packages/template-retail-react-app/app/hooks/use-pickup-shipment.test.js @SalesforceCommerceCloud/cc-spark
e2e/tests/desktop/bopis.spec.js @SalesforceCommerceCloud/cc-spark

# Bonus Products feature files - PR #2704
packages/template-retail-react-app/app/components/product-item/bonus-product-quantity.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/components/product-item/bonus-product-quantity.test.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/components/product-item/product-quantity-picker.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/components/product-item/product-quantity-picker.test.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/pages/cart/partials/bonus-products-title.jsx @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/pages/cart/partials/bonus-products-title.test.js @SalesforceCommerceCloud/cc-sharks

# Standard Products feature files - PR #2697
packages/template-retail-react-app/app/mocks/standard-product.js @SalesforceCommerceCloud/cc-sharks
packages/template-retail-react-app/app/utils/add-to-cart-utils.js @SalesforceCommerceCloud/cc-sharks


* @SalesforceCommerceCloud/mobifyers
#ECCN:Open Source
6 changes: 5 additions & 1 deletion .github/actions/count_deps/action.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
name: count_deps
inputs:
project_dir:
description: 'Path to the project directory'
required: true
runs:
using: composite
steps:
- name: Count Generated Project Dependencies
# TODO: Can TOTAL_PACKAGES be exported in a cleaner way?
run: |-
MAX_PACKAGES="2260"
total=$(./scripts/count-dependencies.js generated-${{ matrix.template }})
total=$(./scripts/count-dependencies.js "${{ inputs.project_dir }}")
echo "TOTAL_PACKAGES=${total}" >> $GITHUB_ENV

if [ "$total" -gt "$MAX_PACKAGES" ]; then
Expand Down
36 changes: 36 additions & 0 deletions .github/actions/e2e_acquire_mrt_target/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: e2e_acquire_mrt_target
description: Acquire MRT Target from pool of available targets in the MRT staging org.
inputs:
BRANCH:
description: 'GitHub branch name from workflow invoking this action'
required: false
RUN_ID:
description: 'GitHub workflow run ID from workflow invoking this action'
required: true
PR_NUMBER:
description: 'GitHub PR number from workflow invoking this action'
required: false
MAX_RETRIES:
description: 'Maximum retry attempts to acquire MRT target'
required: false
default: '3'
RETRY_DELAY:
description: 'Delay between retries in milliseconds'
required: false
default: '10000'

runs:
using: composite
steps:
- name: Acquire MRT Target
id: acquire_mrt_target
shell: bash
run: |-
set -e
cmd="node e2e/scripts/mrt-target-manager.js acquire --run-id ${{inputs.RUN_ID}} --max-retries ${{inputs.MAX_RETRIES}} --retry-delay ${{inputs.RETRY_DELAY}}"
if [ -n "${{inputs.PR_NUMBER}}" ]; then
cmd="$cmd --pr-number ${{inputs.PR_NUMBER}}"
elif [ -n "${{inputs.BRANCH}}" ]; then
cmd="$cmd --branch ${{inputs.BRANCH}}"
fi
eval $cmd
10 changes: 10 additions & 0 deletions .github/actions/e2e_generate_app/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,24 @@ inputs:
required: false
type: string

outputs:
project_path:
description: Path to the generated project directory
value: ${{ steps.generate_project.outputs.project_path }}

runs:
using: composite
steps:
- name: Generate new project based on project-key
id: generate_project
run: |
COMMAND="node e2e/scripts/generate-project.js --project-key ${{ inputs.PROJECT_KEY }}"
if [[ -n "${{ inputs.TEMPLATE_VERSION }}" ]]; then
COMMAND="$COMMAND --templateVersion ${{ inputs.TEMPLATE_VERSION }}"
fi
$COMMAND

# Return path to the generated project
GENERATED_PROJECTS_DIR=$(node -e "console.log(require('./e2e/config.js').GENERATED_PROJECTS_DIR)")
echo "project_path=$GENERATED_PROJECTS_DIR/${{ inputs.PROJECT_KEY }}" >> $GITHUB_OUTPUT
shell: bash
20 changes: 20 additions & 0 deletions .github/actions/e2e_release_mrt_target/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: e2e_release_mrt_target
description: Release MRT Target back to pool of available targets in the MRT staging org.
inputs:
SLUG:
description: 'MRT target slug'
required: true
MAX_RETRIES:
description: 'Maximum retry attempts to release MRT target'
required: false
default: '3'
RETRY_DELAY:
description: 'Delay between retries in milliseconds'
required: false
default: '10000'

runs:
using: node20 # Only 'node12', 'node16', 'node20' or 'node24' are supported.
main: dist/main.js
post: dist/post.js
post-if: always()
22 changes: 22 additions & 0 deletions .github/actions/e2e_release_mrt_target/dist/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Copyright (c) 2025, Salesforce, Inc.
* All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

/**
* @file main.js
* @description Arms the post-release cleanup for MRT targets in CI.
*
* Intentionally empty. This file just needs to exist. Post step will read INPUT_DETAILS_FILE and perform release.
*
* Why:
* - GitHub Actions post steps execute even when a job fails or is manually cancelled,
* providing best-effort cleanup of leased resources.
* - Keeping the actual release in post.js avoids releasing too early while the job
* is still running and centralizes all teardown logic at job end.
*
* See also:
* - post.js (performs the actual release using the saved inputs)
*/
48 changes: 48 additions & 0 deletions .github/actions/e2e_release_mrt_target/dist/post.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Copyright (c) 2025, Salesforce, Inc.
* All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/

/**
* @file post.js
* @description Performs the actual release of the MRT target back to the pool of available targets in the MRT staging org.
* This step is executed even when a job fails or is manually cancelled, providing best-effort cleanup of leased resources.
* This step is executed after the main step in the workflow.
*/
const fs = require('fs')
const path = require('path')
const {spawnSync} = require('child_process')
const config = require('../../../../e2e/config.js')

;(async () => {
try {
const workspace = process.env.GITHUB_WORKSPACE || process.cwd()
const detailsFile = config.MRT_TARGET_DETAILS_FILE
const absDetails = path.resolve(workspace, detailsFile)
console.log(`Reading MRT target details from ${absDetails}`)
if (!fs.existsSync(absDetails)) {
console.log(`No details file at ${absDetails}. Skipping release.`)
return
}

const details = JSON.parse(fs.readFileSync(absDetails, 'utf8'))
console.log(`Details: ${JSON.stringify(details)}`)
const slug = details && details.slug
if (!slug) {
console.log('No slug found in details file. Skipping release.')
return
}

const cli = path.resolve(workspace, 'e2e/scripts/mrt-target-manager.js')
console.log(`Releasing MRT target: ${slug}`)
const res = spawnSync('node', [cli, 'release', slug], {stdio: 'inherit', cwd: workspace})

if (res.status !== 0) {
console.log(`Release exited with status ${res.status}.`)
}
} catch (e) {
console.log(`Release step error: ${e.message}`)
}
})()
18 changes: 15 additions & 3 deletions .github/actions/e2e_validate_generated_app/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,21 @@ runs:
steps:
- name: Validate generated project
run: |
COMMAND="node e2e/scripts/validate-generated-project.js ${{ inputs.PROJECT_KEY }}"
set -euo pipefail

COMMAND=(node e2e/scripts/validate-generated-project.js "${{ inputs.PROJECT_KEY }}")

if [[ -n "${{ inputs.TEMPLATE_VERSION }}" ]]; then
COMMAND="$COMMAND --templateVersion ${{ inputs.TEMPLATE_VERSION }}"
COMMAND+=(--templateVersion "${{ inputs.TEMPLATE_VERSION }}")
fi
$COMMAND

echo "Executing command: ${COMMAND[*]}"

if ! "${COMMAND[@]}"; then
echo "❌ Node.js validation script failed with exit code $?"
echo "::error::Validation of generated project failed"
exit 1
fi

echo "✅ Project validation completed successfully"
shell: bash
24 changes: 18 additions & 6 deletions .github/actions/generate_app/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ inputs:
project_dir:
description: Project Directory

outputs:
project_path:
description: Path to the generated project directory
value: ${{ steps.generate_project.outputs.project_path }}

runs:
using: composite
steps:
Expand All @@ -31,20 +36,20 @@ runs:
run: |
use_extensibility_input="${{ inputs.use_extensibility }}"
if [ "use_extensibility_input" = "true" ]; then
use_extensibility_value=2
else
use_extensibility_value=1
else
use_extensibility_value=2
fi
echo "USE_EXTENSIBILITY_VALUE=$use_extensibility_value" >> $GITHUB_ENV
echo "USE_EXTENSIBILITY_VALUE=$use_extensibility_value" >> $GITHUB_ENV

is_private_client_input="${{ inputs.is_private_client }}"
if [ "$is_private_client_input" = "true" ]; then
is_private_client_value=1
else
is_private_client_value=2
fi
echo "IS_PRIVATE_CLIENT_VALUE=$is_private_client_value" >> $GITHUB_ENV

setup_hybrid_input="${{ inputs.setup_hybrid }}"
if [ "$setup_hybrid_input" = "true" ]; then
setup_hybrid_value=2
Expand All @@ -53,6 +58,8 @@ runs:
fi
echo "SETUP_HYBRID_VALUE=$setup_hybrid_value" >> $GITHUB_ENV

# TODO: update this to use the standard input feature that Ben created recently
# TODO: this action does not finish successfully because of a dirty-workspace error, due to creating this generator-responses.json
- name: Build project generator inputs
id: build_generator_inputs
shell: bash
Expand Down Expand Up @@ -107,11 +114,16 @@ runs:
run: |
cat generator-responses.json
node e2e/scripts/generate-project.js --project-config "$(jq -c . generator-responses.json)"

# Return path to the generated project
GENERATED_PROJECTS_DIR=$(node -e "console.log(require('./e2e/config.js').GENERATED_PROJECTS_DIR)")
echo "project_path=$GENERATED_PROJECTS_DIR/${{ inputs.project_dir }}" >> $GITHUB_OUTPUT
shell: bash

# TODO: I think we can safely delete this step. We already install the dependencies in the previous step.
- name: Build generated project
id: build_generated_project
working-directory: ../generated-projects/${{ inputs.project_dir }}
working-directory: ${{ steps.generate_project.outputs.project_path }}
run: |-
npm ci
npm run build
Expand Down
Loading
Loading