Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1498 commits
Select commit Hold shift + click to select a range
962c7df
Fix tests
bendvc Jul 15, 2025
9236244
Merge branch 'develop' into bendvc/W-18909887_productize-create-app-tool
bendvc Jul 15, 2025
9af28d9
@W-18955816@ Remove search overrides (#2819)
vcua-mobify Jul 15, 2025
811d4c8
Merge branch 'develop' into testfix/revert-test-product
shethj Jul 15, 2025
b2b7e89
Rename pwa-kit-mcp project
bendvc Jul 15, 2025
799c7cb
Update server.js
bendvc Jul 15, 2025
e73ec58
Include bin entry in package.json
bendvc Jul 15, 2025
9626b15
Merge pull request #2761 from SalesforceCommerceCloud/testfix/revert-…
shethj Jul 15, 2025
43ddd0c
update changelog.md
yhsieh1 Jul 15, 2025
bb9bb6f
update changelog.md
yhsieh1 Jul 15, 2025
51a7ce0
Merge branch 'develop' into feature/generated-project-cursor-rules
yhsieh1 Jul 15, 2025
27707dd
Fix dependencies etc
bendvc Jul 15, 2025
9be96a5
Add example with output dir
bendvc Jul 15, 2025
ed9e427
remove duplicated rules under assets
yhsieh1 Jul 15, 2025
70c7d49
@W-19065116 fix formating issue
yhsieh1 Jul 16, 2025
2712e5b
@W-19053749: Removed edit button for auto-bonus products (#2815)
ddiazccrz Jul 16, 2025
40cc300
Punctuation fix in readme
bendvc Jul 16, 2025
0c6d073
feat: use `<picture>` elements for responsive images @W-18714493 (#2724)
seckardt Jul 16, 2025
3fc4971
@W-19054407 BOPIS fix bundle inventory and child pickup selection (#2…
patricksullivansf Jul 16, 2025
bc82c7e
Update program.json
bendvc Jul 16, 2025
64802ec
Merge branch 'develop' into bendvc/W-18909887_productize-create-app-tool
bendvc Jul 16, 2025
aa367d8
Merge branch 'develop' into bendvc/W-19008094_rename-mcp-project
bendvc Jul 16, 2025
5ad0aa6
@W-19053749: Updated changelog to match new accepted style (#2837)
ddiazccrz Jul 17, 2025
5d937dc
Merge branch 'develop' of https://github.com/SalesforceCommerceCloud/…
yhsieh1 Jul 17, 2025
dd9fec0
update changelog
yhsieh1 Jul 17, 2025
996b910
revert development guidelines changes
yhsieh1 Jul 17, 2025
4be03f2
revert development guidelines changes
yhsieh1 Jul 17, 2025
c8daf70
Merge branch 'develop' into bendvc/W-18909887_productize-create-app-tool
bendvc Jul 17, 2025
932d141
Merge branch 'develop' into bendvc/W-19008094_rename-mcp-project
bendvc Jul 17, 2025
a7324c6
Rename package to pwa-kit-mcp
bendvc Jul 17, 2025
3a0d2c2
Update server json in readme
bendvc Jul 17, 2025
bcab28d
Update readme and bump version
bendvc Jul 17, 2025
ec2c135
Ensure the latest version is used in readme example
bendvc Jul 17, 2025
cd4971b
Version align the mcp server with the platform version
bendvc Jul 17, 2025
c5a9e63
Use --initGit flag and test for .git/ creation
bendvc Jul 17, 2025
5c31a3b
Add flag both commands for template and presets
bendvc Jul 17, 2025
f72f124
Ensure gitignore is created
bendvc Jul 17, 2025
50ca1ed
Ensure default command includes --initGit
bendvc Jul 17, 2025
823f4ba
Update base command
bendvc Jul 17, 2025
001e45c
@W-19045349 Add better error handling for Datacloud (#2811)
carson-campbell Jul 18, 2025
9fdbcd2
qa prompt
szirpesf Jul 18, 2025
34d24d0
update
szirpesf Jul 18, 2025
e7e1304
encapulate rule copy logic
yhsieh1 Jul 18, 2025
2870993
update e2e test to verify .cursor folder is generated
yhsieh1 Jul 18, 2025
a64fda6
feat: add feature flag to enable/disable partial hydration @W-1908294…
seckardt Jul 18, 2025
14b1bb1
update changelog
yhsieh1 Jul 18, 2025
04fe1f4
Merge branch 'develop' into feature/generated-project-cursor-rules
yhsieh1 Jul 18, 2025
4bb7ea1
Merge branch 'develop' into release-3.11.x
vcua-mobify Jul 18, 2025
02d72cf
Bump versions
vcua-mobify Jul 18, 2025
e2f3f99
Clean up changelogs
vcua-mobify Jul 18, 2025
85ba839
Update usid expiry to match refresh_token expiry
shethj Jul 18, 2025
f9e4f03
Linting fix
shethj Jul 18, 2025
b69252d
Update changelog
shethj Jul 18, 2025
5a6f529
Merge branch 'develop' into feature/update-auth-cookie-attrs
shethj Jul 18, 2025
33365ef
Merge pull request #2853 from SalesforceCommerceCloud/3.11.x-preview.1
vcua-mobify Jul 18, 2025
840c313
Better prompting for cursor and create app program
bendvc Jul 18, 2025
9b91931
Update packages/commerce-sdk-react/src/auth/index.ts
shethj Jul 18, 2025
1365207
Add unit tests for usid expiry
shethj Jul 18, 2025
ee441c5
Remove overlapping test cases
shethj Jul 21, 2025
f455dca
update commerce-sdk-react
joeluong-sfcc Jul 21, 2025
e189fd9
update changelog
joeluong-sfcc Jul 21, 2025
42d6c58
Merge pull request #2866 from SalesforceCommerceCloud/ju/consume-iso-…
vcua-mobify Jul 21, 2025
b8ab152
Merge branch 'develop' into feature/generated-project-cursor-rules
sf-henry-semaganda Jul 21, 2025
22ec7ad
Merge branch 'develop' into bendvc/W-19008094_rename-mcp-project
bendvc Jul 22, 2025
87c946c
Merge pull request #2820 from SalesforceCommerceCloud/feature/generat…
sf-henry-semaganda Jul 22, 2025
98640a2
bump version
vcua-mobify Jul 22, 2025
ce537dc
Merge pull request #2883 from SalesforceCommerceCloud/bump-3.11-to-st…
vcua-mobify Jul 22, 2025
2decda2
Merge branch 'develop' into bendvc/W-19008094_rename-mcp-project
bendvc Jul 22, 2025
be32f9c
Merge branch 'release-3.11.x' into develop
vcua-mobify Jul 22, 2025
5c54490
bump develop to next dev version
vcua-mobify Jul 22, 2025
b7b515f
Update changelogs
vcua-mobify Jul 22, 2025
74ac887
Change version number
bendvc Jul 22, 2025
ed9c98e
Merge pull request #2822 from SalesforceCommerceCloud/bendvc/W-190080…
bendvc Jul 23, 2025
d784025
Merge branch 'develop' into bendvc/W-18909887_productize-create-app-tool
bendvc Jul 23, 2025
ec5ee17
Update readme
bendvc Jul 23, 2025
d96db39
Merge branch 'develop' into 3.11.0-release-merge-back-to-develop
vcua-mobify Jul 23, 2025
0749d2f
Move tools to tools folder
bendvc Jul 23, 2025
373decf
Merge pull request #2887 from SalesforceCommerceCloud/3.11.0-release-…
vcua-mobify Jul 23, 2025
76a3ae9
Clean up files/folders, create new tool folder.
bendvc Jul 23, 2025
715c7b4
Merge branch 'develop' into bendvc/W-18909887_productize-create-app-tool
bendvc Jul 23, 2025
23d9592
Lint
bendvc Jul 23, 2025
c348f59
A11y tests - Handle dynamic aria labels generated by chakra UI (#2864)
shethj Jul 23, 2025
a508fb8
Merge branch 'develop' into bendvc/W-18909887_productize-create-app-tool
bendvc Jul 23, 2025
4acdd63
Merge branch 'develop' into sz-W-18980284-qa
szirpesf Jul 24, 2025
576d020
Merge pull request #2817 from SalesforceCommerceCloud/bendvc/W-189098…
bendvc Jul 25, 2025
411045e
initial implementation of create page mcp tool
wei-liu-sf Jul 17, 2025
1fee12c
fix
wei-liu-sf Jul 21, 2025
71dea8b
support open url
wei-liu-sf Jul 22, 2025
3524ede
fix the import
wei-liu-sf Jul 23, 2025
8739449
update README and changelog
wei-liu-sf Jul 24, 2025
65ce035
Modified create page mcp tool
aditek-sf Jul 24, 2025
0d20ca2
Added Image Componentsupport to Create page MCP tool
aditek-sf Jul 24, 2025
c83bf99
Fixed failing tests
aditek-sf Jul 24, 2025
5f9c27c
Added new and fixed failing tests and corrected linting issues
aditek-sf Jul 24, 2025
f68d4b0
Added new test and minor update to system prompt
aditek-sf Jul 25, 2025
97ff447
Updated image component functionality
aditek-sf Jul 25, 2025
fcaffc8
Updated system prompt
aditek-sf Jul 25, 2025
7f8d592
Fixed routes issue
aditek-sf Jul 26, 2025
57363f9
Added tests and comments
aditek-sf Jul 28, 2025
76c4f41
Fixed merge conflicts and moved cursor to retail-react-app
aditek-sf Jul 28, 2025
3610c26
skip changelog
aditek-sf Jul 28, 2025
650a7b0
Removed unused const
aditek-sf Jul 29, 2025
ca394f1
Addressed comments
aditek-sf Jul 29, 2025
4cd78bb
Update reading expiry time for usid
shethj Jul 29, 2025
0011133
Removed the cursor rule
aditek-sf Jul 29, 2025
09e4760
Merge branch 'develop' into sz-W-18980284-qa
szirpesf Jul 29, 2025
8524ae0
Merge pull request #2855 from SalesforceCommerceCloud/sz-W-18980284-qa
szirpesf Jul 29, 2025
bc9ceb5
Merge branch 'develop' into W-18996216-create-page
aditek-sf Jul 29, 2025
b5ce9fa
Merge pull request #2899 from SalesforceCommerceCloud/W-18996216-crea…
aditek-sf Jul 29, 2025
7366292
Update codeowners file to include ownership for specific features (#2…
unandyala Jul 30, 2025
d3b7656
@W-18895609: 🚀 Shopper Agent Experience v3.0 (#2658)
sf-avinash-kasipathy Jul 30, 2025
d7d1eb1
Committing for Rules and cleanup
snilakandan13 Jul 30, 2025
b0343b6
skip changelog
snilakandan13 Jul 30, 2025
2a3ea48
Fixed tests
aditek-sf Jul 30, 2025
5abe59c
Remove reference to claude and clean up readme
bendvc Jul 30, 2025
dd85dc3
Update CHANGELOG.md
bendvc Jul 30, 2025
450c3bc
Merge branch 'develop' into feature/update-auth-cookie-attrs
shethj Jul 30, 2025
d91f985
Lint fix
shethj Jul 30, 2025
7ceec2d
Addressed comments
aditek-sf Jul 31, 2025
b98854a
Merge branch 'develop' into t/commerce/W-19013916/updatingPageCreatio…
aditek-sf Jul 31, 2025
f9d6726
Make development section more robust.
bendvc Jul 31, 2025
3199cd2
Removed the flex hardcode in log message
aditek-sf Jul 31, 2025
50e6894
Fixing Page Tool
snilakandan13 Jul 31, 2025
936db9a
Merge branch 't/commerce/W-19013916/updatingPageCreationCursorRules' …
snilakandan13 Jul 31, 2025
d430030
Merge pull request #2854 from SalesforceCommerceCloud/feature/update-…
shethj Jul 31, 2025
05a140c
Fixing Linter
snilakandan13 Jul 31, 2025
d33cecb
Updating the Page tool
snilakandan13 Jul 31, 2025
6cf3942
Fix eslint discoverability in the monorepo (@W-19068681@) (#2927)
vmarta Jul 31, 2025
c3390fc
Reverting changes for Page tool
snilakandan13 Jul 31, 2025
ec6c086
Added comment back
snilakandan13 Jul 31, 2025
5691a06
Update packages/pwa-kit-mcp/README.md
bendvc Jul 31, 2025
f5c3499
Update packages/pwa-kit-mcp/README.md
bendvc Jul 31, 2025
bb401b9
Update packages/pwa-kit-mcp/README.md
bendvc Jul 31, 2025
f3c2645
Update packages/pwa-kit-mcp/README.md
bendvc Jul 31, 2025
7a99a42
Update packages/pwa-kit-mcp/README.md
bendvc Jul 31, 2025
bce93ad
Update packages/pwa-kit-mcp/README.md
bendvc Jul 31, 2025
1668af6
Fix link
bendvc Jul 31, 2025
d7f8405
Merge branch 'bendvc/remove-claude-references' of https://github.com/…
bendvc Jul 31, 2025
bdcca80
Reverting the test change
snilakandan13 Jul 31, 2025
48e4e38
Merge branch 'develop' into t/commerce/W-19013916/updatingPageCreatio…
snilakandan13 Jul 31, 2025
1e67830
Update package description
bendvc Jul 31, 2025
ea5f1ca
Remove folder structure section
bendvc Jul 31, 2025
39b5732
Merge pull request #2946 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Jul 31, 2025
311c5da
@W-19179026: disable streaming responses (#2964)
sf-avinash-kasipathy Aug 1, 2025
1a403c7
Merge branch 'develop' into bendvc/remove-claude-references
bendvc Aug 1, 2025
350378c
Explicitly added example of what the path to your project might look …
bendvc Aug 1, 2025
faa48f2
Update packages/pwa-kit-mcp/README.md
bendvc Aug 1, 2025
3632d67
Merge pull request #2954 from SalesforceCommerceCloud/bendvc/remove-c…
bendvc Aug 1, 2025
7eb99e8
@W-19248293: logMCPMessage is broken
wei-liu-sf Aug 4, 2025
0694935
@W-19248293: logMCPMessage is broken
wei-liu-sf Aug 4, 2025
c7884c7
fix lint errors
wei-liu-sf Aug 4, 2025
cb195b6
Committing for converting the createNewcomponent to use prompts inste…
snilakandan13 Aug 5, 2025
3d8d7f4
Merge branch 'develop' into t/commerce/W-19211780/createComponentFixes
snilakandan13 Aug 5, 2025
9769efc
Committing for server.js
snilakandan13 Aug 5, 2025
636c2f3
Merge branch 't/commerce/W-19211780/createComponentFixes' of https://…
snilakandan13 Aug 5, 2025
ea872dd
Committing for server.js
snilakandan13 Aug 5, 2025
5a35af4
Committing for server.js
snilakandan13 Aug 5, 2025
5f025ec
Merge branch 'develop' into wliu-W-19248293-logMCPMessage
wei-liu-sf Aug 5, 2025
a473997
Merge pull request #2989 from SalesforceCommerceCloud/wliu-W-19248293…
wei-liu-sf Aug 5, 2025
8b07ea7
Review comments
snilakandan13 Aug 5, 2025
0b671bc
@W-19251796 MCP a11y performance tool format fix (#3003)
patricksullivansf Aug 6, 2025
a215af4
Committing for unit tests
snilakandan13 Aug 6, 2025
d08fe26
@W-19251739 fix create-new-page-tool components import path
yhsieh1 Aug 6, 2025
f99bc2a
@W-19183433: Add code owners validation to the CI pipeline (#2939)
unandyala Aug 6, 2025
925e3bc
Merge branch 'develop' into t/commerce/W-19211780/createComponentFixes
snilakandan13 Aug 6, 2025
0fcf3e4
Merge pull request #2998 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Aug 6, 2025
39b49b3
fix import when extensible is on
yhsieh1 Aug 6, 2025
d8cd86f
update change log
yhsieh1 Aug 6, 2025
ef0edff
Initial Commit
bendvc Aug 6, 2025
5298488
remove bug fix change logs
yhsieh1 Aug 7, 2025
b536770
add inputs for absoulte path and not rely on env variables
yhsieh1 Aug 7, 2025
de74fd4
Merge pull request #3018 from SalesforceCommerceCloud/bendvc/remove-i…
bendvc Aug 7, 2025
d64fb43
Merge branch 'develop' of https://github.com/SalesforceCommerceCloud/…
yhsieh1 Aug 7, 2025
2e02e3f
Normalize path separators to forward slashes for ES6 imports
yhsieh1 Aug 7, 2025
b6558e7
Merge pull request #3014 from SalesforceCommerceCloud/t/commerce/W-19…
yhsieh1 Aug 7, 2025
b7a3c75
Extra check to disallow trusted-system request from proxy
vcua-mobify Aug 7, 2025
bcbfb3f
Added GIT version control MCP tool
snilakandan13 Aug 8, 2025
c23aa88
Initial Commit
snilakandan13 Aug 8, 2025
0533e97
Review comments
snilakandan13 Aug 8, 2025
150c715
Fixing tests
snilakandan13 Aug 8, 2025
891da3a
Review comments
snilakandan13 Aug 8, 2025
c3d7e16
Review comments
snilakandan13 Aug 8, 2025
c135307
Merge branch 'develop' into t/commerce/W-19014132/versionControlTool
snilakandan13 Aug 8, 2025
428e3e7
Update CHANGELOG.md
vcua-mobify Aug 8, 2025
cee8d39
Fix test description
vcua-mobify Aug 8, 2025
f0993c0
Merge pull request #3035 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Aug 8, 2025
7b4cc29
Move the statements around
vcua-mobify Aug 8, 2025
dd58d73
Test updates
vcua-mobify Aug 8, 2025
6fbad06
Merge branch 'develop' into slas-proxy-improvements
vcua-mobify Aug 8, 2025
4f970af
Update the string so that we can explicitly catch /trusted-system/token
vcua-mobify Aug 9, 2025
61af56e
Add robots.txt to mrt-reference-app.
jbothra-sf Aug 11, 2025
b1ecd5b
Merge pull request #3042 from SalesforceCommerceCloud/slas-proxy-impr…
vcua-mobify Aug 11, 2025
a0eeb90
Align versions with develop branch expectations
bendvc Aug 11, 2025
0fd93db
Merge branch 'develop' into jbothra-sf/@W-17514374-add-robot-txt-signed
jbothra-sf Aug 11, 2025
a845630
Update CHANGELOG.md
bendvc Aug 11, 2025
10a8ecb
Merge branch 'develop' into bendvc/fix-versions
bendvc Aug 11, 2025
163aefa
Merge pull request #3052 from SalesforceCommerceCloud/jbothra-sf/@W-1…
jbothra-sf Aug 11, 2025
9ddf4a0
Merge branch 'develop' into bendvc/fix-versions
bendvc Aug 11, 2025
d9010e7
Move trusted agent exception above the generic case
vcua-mobify Aug 11, 2025
fe4b257
Merge pull request #3053 from SalesforceCommerceCloud/bendvc/fix-vers…
bendvc Aug 11, 2025
96b7bda
Create agent_checkout_rebase_action.yml (#3027)
nsethun123 Aug 11, 2025
3ddf419
[CI workflow] automate generating, configurating, and deploying build…
vmarta Aug 13, 2025
755f2e6
Remove specific user not found message
vcua-mobify Aug 11, 2025
2259b4f
@W-18905383@ Decouple lint and bundle size GA workflows (#3084)
adamraya Aug 13, 2025
495aed5
Modify user not found responses from SLAS
vcua-mobify Aug 14, 2025
7bc13d4
Make the mcp server indipendent
bendvc Aug 14, 2025
deaffa7
Merge branch 'develop' into bendvc/make-mcp-independent
bendvc Aug 14, 2025
a54d17d
Merge pull request #3097 from SalesforceCommerceCloud/bendvc/make-mcp…
bendvc Aug 14, 2025
cb955dc
User not found returns 200
vcua-mobify Aug 14, 2025
011c199
Handling for responses with no body
vcua-mobify Aug 14, 2025
a556352
Merge branch 'develop' into slas-proxy-improvements
vcua-mobify Aug 14, 2025
ffa67e4
CI performance workflow: fix the deploy step (@W-19170135@) (#3091)
vmarta Aug 15, 2025
d7acee2
Update agent_checkout_rebase_action.yml
nsethun123 Aug 15, 2025
8f1e198
Update agent_checkout_rebase_action.yml
nsethun123 Aug 15, 2025
3fb7c5c
Fix how 403s are sent now that selfHandleResponse is true
vcua-mobify Aug 15, 2025
9abf5c6
Add test
vcua-mobify Aug 15, 2025
9aa0de0
Merge branch 'develop' into slas-proxy-improvements
vcua-mobify Aug 15, 2025
d68e4ee
Remove unused message
vcua-mobify Aug 15, 2025
af2656e
Changelog updates
vcua-mobify Aug 15, 2025
283ed3f
Update translations
vcua-mobify Aug 15, 2025
c73b214
Remove test case that is no longer needed
vcua-mobify Aug 15, 2025
4dd4814
Update agent_checkout_rebase_action.yml
nsethun123 Aug 18, 2025
37996b9
Minor Cleanup
snilakandan13 Aug 18, 2025
4609936
CI perf workflow: fix the deploy step.. take two (@W-19345469@) (#3115)
vmarta Aug 18, 2025
a8180f9
Merge branch 'develop' into t/commerce/W-19159067/cleanupForMCPTools
snilakandan13 Aug 18, 2025
313ee7e
Apply feedback
vcua-mobify Aug 18, 2025
a3ec583
lint
vcua-mobify Aug 18, 2025
817b19a
Merge pull request #3118 from SalesforceCommerceCloud/t/commerce/W-19…
snilakandan13 Aug 18, 2025
e5e56ac
Merge branch 'develop' into update-agent-checkout-rebase-action
nsethun123 Aug 18, 2025
83c4a91
Merge pull request #3106 from SalesforceCommerceCloud/update-agent-ch…
nsethun123 Aug 18, 2025
7dfd242
Lockdown chakra-ui version to 2.6.0
shethj Aug 19, 2025
f03d74c
Update changelog
shethj Aug 19, 2025
b3ec2ee
Merge branch 'develop' into bugfix/lockdown-chakra-ui-react-version
shethj Aug 19, 2025
eee23cf
Pin v2.7.0
shethj Aug 19, 2025
630e52d
Bump vendor bundle size
shethj Aug 19, 2025
8604f1d
Merge pull request #3132 from SalesforceCommerceCloud/bugfix/lockdown…
shethj Aug 19, 2025
84689d0
Merge branch 'develop' into slas-proxy-improvements
vcua-mobify Aug 19, 2025
6512d91
Merge pull request #3113 from SalesforceCommerceCloud/slas-proxy-impr…
vcua-mobify Aug 19, 2025
baabc53
Skip deleting dwsid on login for if hybrid auth is enabled
shethj Aug 21, 2025
0568a4e
Update changelog
shethj Aug 21, 2025
a6e9a31
Fix whitespace linting
shethj Aug 21, 2025
8132088
Update implementation and add unit tests
shethj Aug 21, 2025
8a22e01
Remove redundant tests
shethj Aug 21, 2025
6b5c48c
Update test description
shethj Aug 21, 2025
ac9a16d
Update hbs templates to include hybridAuthEnabled
shethj Aug 21, 2025
0da9002
CI trigger
shethj Aug 21, 2025
c487d6c
CI trigger
shethj Aug 21, 2025
1611a5b
Merge pull request #3151 from SalesforceCommerceCloud/hotfix/skip-del…
shethj Aug 21, 2025
263158a
Prepare commerce-sdk-react:3.4.1-preview.0
shethj Aug 21, 2025
0b35611
Downgrade SDK dependencies
shethj Aug 21, 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
66 changes: 66 additions & 0 deletions .cursor/rules/cursor-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
description: How to add or edit Cursor rules in our project
globs:
alwaysApply: false
---
# Cursor Rules Location

How to add new cursor rules to the project

1. Always place rule files in PROJECT_ROOT/.cursor/rules/:
```
.cursor/rules/
├── your-rule-name.mdc
├── another-rule.mdc
└── ...
```

2. Follow the naming convention:
- Use kebab-case for filenames
- Always use .mdc extension
- Make names descriptive of the rule's purpose

3. Directory structure:
```
PROJECT_ROOT/
├── .cursor/
│ └── rules/
│ ├── your-rule-name.mdc
│ └── ...
└── ...
```

4. Never place rule files:
- In the project root
- In subdirectories outside .cursor/rules
- In any other location

5. Cursor rules have the following structure:

````
---
description: Short description of the rule's purpose
globs: optional/path/pattern/**/*
alwaysApply: false
---
# Rule Title

Main content explaining the rule with markdown formatting.

1. Step-by-step instructions
2. Code examples
3. Guidelines

Example:
```typescript
// Good example
function goodExample() {
// Implementation following guidelines
}

// Bad example
function badExample() {
// Implementation not following guidelines
}
```
````
57 changes: 57 additions & 0 deletions .cursor/rules/testing/unit-tests-generic.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
description: USE WHEN writing unit tests for components in template packages
globs: ["packages/template-*/*/components/**/*.test.{js,jsx,ts,tsx}"]
alwaysApply: false
---
USE WHEN writing unit tests for components in template packages

# 🧪 Generic Component Test Rules

## Structure & Best Practices
- Use `describe` blocks to group tests, `test` for individual cases
- Use `beforeEach` for setup, clear mocks after each test
- **Arrange** → **Act** → **Assert** pattern
- One behavior per test, clear descriptive names

## Queries & Assertions
- Prefer `getByRole`, `getByLabelText`, `getByTestId`
- Use `expect().toBeInTheDocument()`, `.toHaveBeenCalledTimes()`, etc.
- For async: `await waitFor(() => { ... })`

## Mocking
- `jest.fn()` for handlers, `jest.mock()` for modules
- Clear mocks/storage after each test

```js
describe('MyComponent', () => {
beforeEach(() => jest.clearAllMocks())

test('renders and handles interaction', async () => {
const mockHandler = jest.fn()
render(<MyComponent onClick={mockHandler} />)

await userEvent.click(screen.getByRole('button'))
expect(mockHandler).toHaveBeenCalledTimes(1)
})
})
```

## Running Tests
After creating unit tests, **ALWAYS run the tests** to verify they pass and provide feedback on test results.

### Command Format:
```bash
cd packages/<package-name> && npm run test -- '<relative-path-to-test-file> --coverage=false'
```

### Examples:
```bash
# Run specific test file from packages directory
cd packages/template-retail-react-app && npm run test -- 'app/components/drawer-menu/drawer-menu.test.js --coverage=false'
```

### After Running Tests:
- Report if tests **pass** or **fail**
- If tests fail, provide the error messages and fix any issues
- Confirm test coverage is appropriate for the component's core functionality
- Suggest any additional tests if critical functionality is missing
35 changes: 35 additions & 0 deletions .cursor/rules/testing/unit-tests-template-retail-react-app.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
description: USE WHEN writing unit tests in template-retail-react-app components
globs: ["packages/template-retail-react-app/app/components/**/*.test.{js,jsx,ts,tsx}"]
alwaysApply: false
---
# 🛍️ Retail React App Test Rules

## Package-Specific Requirements
- **File naming**: `index.test.js` (colocated with component)
- **Always use `renderWithProviders`** (provides Commerce SDK context)
- **Get user events from return value**: `const {user} = renderWithProviders(...)`
- **Do NOT import `userEvent` directly**

## API Mocking
- Use `prependHandlersToServer` or `msw` for API mocking

## Mock Data Usage

- **Mandatory**: Always use existing mock data from `@salesforce/retail-react-app/app/mocks/` if it is available. This ensures consistency across tests and reduces redundancy. Creating new mock data should only be considered if the required data is not already present in the mocks directory.

```js
import {screen} from '@testing-library/react'
import {renderWithProviders} from '@salesforce/retail-react-app/app/utils/test-utils'
import MyComponent from '.'

describe('MyComponent', () => {
beforeEach(() => jest.clearAllMocks())

test('handles user interaction', async () => {
const {user} = renderWithProviders(<MyComponent />)
await user.click(screen.getByText('Click Me'))
expect(screen.getByText('Expected')).toBeInTheDocument()
})
})
```
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
68 changes: 68 additions & 0 deletions .github/actions/changelog-check/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: 'Changelog Check'
description: 'Check if changelog is updated for the changed packages'
inputs:
pr_number:
description: 'Pull request number'
required: true

runs:
using: 'composite'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full history to access all commits

- name: Determine Base SHA and Merge Base
id: determine_base
run: |
if [ -n "${{ github.event.pull_request.base.sha }}" ]; then
BASE_SHA="${{ github.event.pull_request.base.sha }}"
MERGE_BASE=$(git merge-base $BASE_SHA ${{ github.sha }})
echo "BASE_SHA=$BASE_SHA" >> $GITHUB_ENV
echo "MERGE_BASE=$MERGE_BASE" >> $GITHUB_ENV
else
echo "Not running in a PR context or unable to determine base SHA. Skipping changelog check."
echo "SKIP_CHANGELOG_CHECK=true" >> $GITHUB_ENV
fi
shell: bash

- name: Check if 'skip changelog' label is present
id: check_labels
run: |
SKIP_CHANGELOG_LABEL="${{ contains(github.event.pull_request.labels.*.name, 'skip changelog') }}"
if [ "$SKIP_CHANGELOG_LABEL" = "true" ]; then
echo "Skip changelog label is present. Skipping changelog check."
echo "SKIP_CHANGELOG_CHECK=true" >> $GITHUB_ENV
fi
shell: bash

- name: Debugging Info
run: |
echo "Base SHA: ${{ env.BASE_SHA }}"
echo "Current SHA: ${{ github.sha }}"
echo "Merge Base: ${{ env.MERGE_BASE }}"
echo "SKIP_CHANGELOG_CHECK: ${{ env.SKIP_CHANGELOG_CHECK }}"
shell: bash

- name: Check if changelog is updated
if: ${{ env.SKIP_CHANGELOG_CHECK != 'true' }}
run: |
CHANGED_FILES=$(git diff --name-only ${{ env.MERGE_BASE }} ${{ github.sha }})
if [ -z "$CHANGED_FILES" ]; then
echo "No changed files detected."
exit 0
fi
echo "Changed files: $CHANGED_FILES"

PUBLIC_PACKAGES=("commerce-sdk-react" "pwa-kit-create-app" "pwa-kit-dev" "pwa-kit-react-sdk" "pwa-kit-runtime" "template-retail-react-app")

for PACKAGE in "${PUBLIC_PACKAGES[@]}"; do
if echo "$CHANGED_FILES" | grep -iq "^packages/$PACKAGE/"; then
if ! echo "$CHANGED_FILES" | grep -iq "^packages/$PACKAGE/CHANGELOG.md"; then
echo "CHANGELOG.md was not updated for package $PACKAGE. Please update the CHANGELOG.md or add 'skip changelog' label to the PR."
exit 1
fi
fi
done
shell: bash
26 changes: 26 additions & 0 deletions .github/actions/check_if_latest_release/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: check_if_latest_release
inputs:
token:
description: "Github API token"
runs:
using: composite
steps:
- name: Check if latest release
run: |-
RELEASE_JSON=$(curl -s -H "Authorization: token ${{ inputs.token }}" \
"https://api.github.com/repos/${{ github.repository }}/releases/latest")
LATEST_TAG_NAME=$(echo "$RELEASE_JSON" | jq -r '.tag_name')
RELEASE_EVENT_TAG_NAME=$(echo ${{ github.event.release.tag_name }})
echo "Latest tag: $LATEST_TAG_NAME"
echo "Release event tag: $RELEASE_EVENT_TAG_NAME"
if [ "$LATEST_TAG_NAME" == "$RELEASE_EVENT_TAG_NAME" ]; then
echo "We are releasing the latest tag."
echo "IS_LATEST_RELEASE=true" >> $GITHUB_ENV
else
echo "We are not releasing the latest tag."
echo "IS_LATEST_RELEASE=false" >> $GITHUB_ENV
fi
shell: bash
Loading
Loading