Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
522 commits
Select commit Hold shift + click to select a range
8899c2c
Cleanup
bendvc Jul 11, 2025
343385c
Add tests + minor refactors for testability
bendvc Jul 11, 2025
5eb1695
Update pwa-developer-guideline-tool.test.js
bendvc Jul 11, 2025
b88f625
Update note
bendvc Jul 11, 2025
0b45818
Update CHANGELOG.md
vcua-mobify Jul 11, 2025
8d44cf6
bump versions
vcua-mobify Jul 11, 2025
cad3f3a
Bump versions in mcp server
vcua-mobify Jul 11, 2025
68d1ce4
Removed try/catch
bendvc Jul 11, 2025
cce224d
added cursor rules
yhsieh1 Jul 11, 2025
60f43f7
Update snapshots
shethj Jul 12, 2025
de2a00c
Fix playwright config to not run a11y tests for chrome and chrome-mobile
shethj Jul 12, 2025
b31f4d3
Added options for other
snilakandan13 Jul 14, 2025
57c29ec
move cursor rules to root
yhsieh1 Jul 14, 2025
90faabc
move cursor rules to root
yhsieh1 Jul 14, 2025
3e0d98a
revert change log
yhsieh1 Jul 14, 2025
310e504
Cursor rules for creating new component
snilakandan13 Jul 14, 2025
da8081a
Fix demo instance (#2800)
unandyala Jul 14, 2025
9c6e038
Fix bopis add to cart test product
shethj Jul 14, 2025
293312f
Switch retail app home site to RefArch
shethj Jul 14, 2025
4a6e503
Merge branch 'develop' into bendvc/revert-create-app-changes
bendvc Jul 14, 2025
ff0cc39
Merge pull request #2702 from SalesforceCommerceCloud/t/commerce/W-18…
snilakandan13 Jul 14, 2025
88b6f9b
nested cursor rules
yhsieh1 Jul 14, 2025
61fe5c4
Merge branch 'feature/generated-project-cursor-rules' of https://gith…
yhsieh1 Jul 14, 2025
d4c545f
move to nested rules location
yhsieh1 Jul 14, 2025
ae0fe8d
revert create mobify app js
yhsieh1 Jul 14, 2025
e4827e3
@W-18737391 Add development guidelines and page creation rules for ge…
yhsieh1 Jul 14, 2025
137992f
Update program.json
bendvc Jul 14, 2025
51b8d19
Update program.json
bendvc Jul 14, 2025
4d8d7f6
Merge pull request #2794 from SalesforceCommerceCloud/bendvc/revert-c…
bendvc Jul 14, 2025
271a1f1
Fix potential race condition bug in pwless login (#2758)
alexvuong Jul 14, 2025
3a939a3
Initial Commit
bendvc Jul 14, 2025
1646905
Select the first product on PDP for BOPIS
shethj Jul 15, 2025
7da66c8
Update snapshots
shethj Jul 15, 2025
4b17de4
Merge branch 'develop' into testfix/revert-test-product
shethj Jul 15, 2025
f8bad68
Change when git init is run
bendvc Jul 15, 2025
2aeb3ba
Update CHANGELOG.md
bendvc Jul 15, 2025
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
0fd93db
Merge branch 'develop' into jbothra-sf/@W-17514374-add-robot-txt-signed
jbothra-sf Aug 11, 2025
163aefa
Merge pull request #3052 from SalesforceCommerceCloud/jbothra-sf/@W-1…
jbothra-sf Aug 11, 2025
d05a2da
W-18912479 otp component
syadupathi-sf Jul 7, 2025
5c526bf
add lint fixes
syadupathi-sf Jul 10, 2025
d68d128
add transalations
syadupathi-sf Jul 10, 2025
d7ff00d
skip changelog
syadupathi-sf Jul 10, 2025
1f32257
@W-18912256: Create a feature toggle for 1CC (#2769)
dannyphan2000 Jul 11, 2025
627c69c
@W-18912438 Remove login options irrelevant to one click checkout (#2…
syadupathi-sf Jul 16, 2025
f85b238
@W-19084772 Remove review order step in one click checkout (#2863)
syadupathi-sf Jul 25, 2025
5548b55
@W-18927217: New component for user registration (#2876)
dannyphan2000 Jul 25, 2025
7f19bca
@W-19135066: add saved phone number (#2943)
dannyphan2000 Jul 30, 2025
0114b9d
@W-19135066: add saved shipping address (#2956)
dannyphan2000 Aug 1, 2025
b9c4772
@W-18927151 Trigger OTP modal on leaving the email address field (#2992)
syadupathi-sf Aug 5, 2025
efe3d50
original fix
smahbubani99 Aug 8, 2025
97ff552
disable place order until payment form is complete
smahbubani99 Aug 8, 2025
6e941c8
code changes + test
smahbubani99 Aug 8, 2025
315da90
linting
smahbubani99 Aug 8, 2025
0279d66
original fix
smahbubani99 Aug 8, 2025
bb21d30
W-19120814: Save payment instrument for the shopper after order is cr…
kumaravinashcommercecloud Aug 8, 2025
c30046a
@W-18927185 Get authenticated shopper's saved shipping information (#…
syadupathi-sf Aug 11, 2025
125930b
Put focus on the first digit of the OTP in the modal (#3051)
syadupathi-sf Aug 11, 2025
870cee6
Merge branch 'feature/oneClickCheckout' into syadupathi.W-19307666.re…
syadupathi-sf Aug 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
}
```
````
16 changes: 0 additions & 16 deletions .cursor/rules/testing/unit-tests-generic.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,6 @@ USE WHEN writing unit tests for components in template packages

# 🧪 Generic Component Test Rules

# CRITICAL: AI Attribution Requirements
* **IMPORTANT** All individual test methods generated or modified by Cursor MUST include an AI attribution comment directly above the test stating the following:
"DO NOT REMOVE THIS COMMENT! This test was generated by Cursor". The comment should go on the test method and not the test class. Failure to add an AI Attribution Comment will be considered a failure of test generation.
* The AI attribution comment MUST include a comment declaring the LLM model that was used in writing the test on its own line.

*Sample AI Attribution Comment*
```
/*
* DO NOT REMOVE THIS COMMENT! This test was generated by Cursor
* This test was generated with the following model: Claude 3.5 Sonnet
*/
test('renders component correctly', () => {
// test implementation
})
```

## Structure & Best Practices
- Use `describe` blocks to group tests, `test` for individual cases
- Use `beforeEach` for setup, clear mocks after each test
Expand Down
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
112 changes: 112 additions & 0 deletions .github/workflows/e2e-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: SalesforceCommerceCloud/pwa-kit/e2e-pr
on:
workflow_dispatch:
pull_request: # Default: opened, reopened, synchronize (head branch updated)
merge_group: # Trigger GA workflow when a pull request is added to a merge queue.
push:
branches:
- develop
- 'release-*'

jobs:
test_e2e_private:
runs-on: ubuntu-latest
steps:
# Skipping the entire workflow for now until all steps are implemented.
- name: Skip Check
run: |
echo "SKIP_WORKFLOW=true" >> "$GITHUB_ENV"

- name: Checkout
uses: actions/checkout@v4

- name: Check PWA Kit Version
run: |-
version=`jq -r ".version" package.json`
echo "pwa_kit_version=$version" >> "$GITHUB_ENV"

# TODO: Skip the entire workflow since we don't have e2e tests for PWA Kit v2.x
- name: Skip if PWA Kit version older than v3.x
if: ${{ env.SKIP_WORKFLOW != 'true' }}
run: |
major_version=$(echo "${{ env.pwa_kit_version }}" | cut -d. -f1)
if [ "$major_version" -lt 3 ]; then
echo "PWA Kit version is older than v3.x, skipping workflow."
echo "SKIP_WORKFLOW=true" >> "$GITHUB_ENV"
fi

# Only test for latest Node version supported by MRT
- name: Setup Node
if: ${{ env.SKIP_WORKFLOW != 'true' }}
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

# Check central resource allocation on AWS and get a lock on an available environment from the pool.
# Returns the MRT target ID if lock is acquired, otherwise returns an error state.
- name: Get MRT Target lock
if: ${{ env.SKIP_WORKFLOW != 'true' }}
id: get_mrt_target_lock
run: |
echo "TODO: Implement .github/actions/get_mrt_target_lock"

- name: Create MRT target
id: create_mrt_target
if: ${{ env.SKIP_WORKFLOW != 'true' && steps.get_mrt_target_lock.outputs.status == 'ERR_NO_AVAILABLE_TARGETS' }}
run: |
echo "TODO: Call .github/actions/create_mrt_target with correct inputs"

- name: Get Template Version
if: ${{ env.SKIP_WORKFLOW != 'true' }}
run: |-
version=`jq -r ".version" packages/template-retail-react-app/package.json`
echo "retail_app_template_version=$version" >> "$GITHUB_ENV"

- name: Generate Retail App Private Client
if: ${{ env.SKIP_WORKFLOW != 'true' }}
uses: ./.github/actions/e2e_generate_app
with:
PROJECT_KEY: 'retail-app-private-client'
TEMPLATE_VERSION: ${{ env.retail_app_template_version }}

- name: Validate Retail App Without Extensibility
if: ${{ env.SKIP_WORKFLOW != 'true' }}
uses: ./.github/actions/e2e_validate_generated_app
with:
PROJECT_KEY: 'retail-app-no-ext'
TEMPLATE_VERSION: ${{ env.retail_app_template_version }}

# TODO: Revisit the next 2 steps to see if we can use the existing .github/actions/deploy_app action.
- name: Create MRT credentials file
if: ${{ env.SKIP_WORKFLOW != 'true' }}
uses: './.github/actions/create_mrt'
with:
mobify_user: ${{ secrets.MOBIFY_CLIENT_USER }}
mobify_api_key: ${{ secrets.MOBIFY_CLIENT_API_KEY }}

- name: Push Bundle to MRT (E2E Test PWA Kit)
if: ${{ env.SKIP_WORKFLOW != 'true' }}
uses: './.github/actions/push_to_mrt'
with:
CWD: '../generated-projects/retail-app-no-ext'
# TODO: Use the MRT target ID from the target lock step above.
TARGET: e2e-tests-pwa-kit
FLAGS: --wait

- name: Install Playwright Browsers
if: ${{ env.SKIP_WORKFLOW != 'true' }}
run: npx playwright install --with-deps

- name: Run Playwright tests
if: ${{ env.SKIP_WORKFLOW != 'true' }}
run: npm run test:e2e

- name: Run Playwright a11y tests
if: ${{ env.SKIP_WORKFLOW != 'true' }}
run: npm run test:e2e:a11y

- name: Release MRT Target Lock
if: always() # Always release the target lock back to the pool even if the tests fail.
run: |
echo "TODO: Implement .github/actions/release_mrt_target_lock"
22 changes: 22 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -411,3 +411,25 @@ jobs:
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

test-extra-features:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- name: Install Monorepo Dependencies
run: node ./scripts/gtime.js monorepo_install npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Set PWA Kit E2E Test User
run: export PWA_E2E_USER_EMAIL=e2e.pwa.kit@gmail.com PWA_E2E_USER_PASSWORD=hpv_pek-JZK_xkz0wzf
- name: Run extra features tests
env:
PWA_E2E_USER_EMAIL: e2e.pwa.kit@gmail.com
PWA_E2E_USER_PASSWORD: hpv_pek-JZK_xkz0wzf
run: npm run test:e2e:extra_features
Loading
Loading