Conversation
|
No linked issues found. Please add the corresponding issues in the pull request description. |
AryaDharkar
left a comment
There was a problem hiding this comment.
There is one fundamental error in the services tests. Please check
…s for rewards transactions, milestone Config and summaries
…reward transactions
AryaDharkar
left a comment
There was a problem hiding this comment.
In addition to comments, make sonarqube changes too as they are following latest conventions
|
There was a problem hiding this comment.
Pull request overview
This PR adds a large set of Jest tests and supporting mock fixtures intended to cover the upcoming rewards system (reward tracking, reward processing, milestone config admin APIs, and rewards transaction endpoints), plus a few updates to existing controller tests.
Changes:
- Expanded
packages/app/utils/mocks.jswith reward-system and image-service mock data/factories. - Added new service-level test suites for reward tracking, rewards processing, and milestone config service.
- Added new controller test suites for rewards endpoints and milestone admin endpoints; updated existing
get-logoandgetuserdatacontroller tests.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 35 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/app/utils/mocks.js | Adds extensive mock fixtures/factories for images + rewards + milestones |
| packages/app/tests/services/rewardTransactions.test.js | New tests for reward tracking request validation/logging |
| packages/app/tests/services/rewards.test.js | New tests for rewards processing/leaderboard/transaction reversal |
| packages/app/tests/services/milestoneConfig.test.js | New tests for milestone config service behavior |
| packages/app/tests/controllers/users/getuserdata.js | Updates expected user payload and key fields |
| packages/app/tests/controllers/rewards/transactions.test.js | New controller tests for rewards transaction retrieval |
| packages/app/tests/controllers/rewards/transactionReversal.test.js | New controller tests for admin transaction reversal |
| packages/app/tests/controllers/rewards/summaries.test.js | New controller tests for image/user reward summaries |
| packages/app/tests/controllers/rewards/stats.test.js | New controller tests for user transaction stats endpoint |
| packages/app/tests/controllers/rewards/search.test.js | New controller tests for admin transaction search |
| packages/app/tests/controllers/rewards/leaderboard.test.js | New controller tests for rewards leaderboard |
| packages/app/tests/controllers/rewards/bonusPoints.test.js | New controller tests for admin bonus points endpoint |
| packages/app/tests/controllers/rewards/auditTrail.test.js | New controller tests for rewards audit trail endpoint |
| packages/app/tests/controllers/milestones/update.test.js | New controller tests for milestone config update |
| packages/app/tests/controllers/milestones/list.test.js | New controller tests for milestone config list/get |
| packages/app/tests/controllers/milestones/delete.test.js | New controller tests for milestone config delete |
| packages/app/tests/controllers/milestones/create.test.js | New controller tests for milestone config create |
| packages/app/tests/controllers/milestones/activate.test.js | New controller tests for milestone config activate |
| packages/app/tests/controllers/logo/get-logo.js | Updates logo controller tests to include reward tracking hook (mocked) |
| packages/app/tests/controllers/catalog/updatepermission.js | Switches STATUS_CODES import to node:http |
Comments suppressed due to low confidence (1)
packages/app/tests/controllers/users/getuserdata.js:142
- The test now expects key objects to omit
key_descriptionandsubscription_id, but the test setup mocksKeyService.getAllUserKeys()to return those properties (and the controller returnskeysDataas-is). This will cause thetoEqualto fail; either update the mocked key shape to match the expected response or keep the expected fields consistent with the mocked return value.
keys: [
{
_id: mockKeyModel._id.toString(),
created_at: mockKeyModel._id.getTimestamp().toISOString(),
updated_at: mockKeyModel.updated_at.toISOString(),
expires_at: mockKeyModel.expires_at.toISOString(),
},
],
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


Description
closes:#943
This is a test only pr created to distribute the size of the pr. Contains test for reward creation and transactions.
Tech Document : https://www.notion.so/OpenLogo-Reward-System-Architecture-2e11cb09a77180ed8e60d4f57e6d0d49?source=copy_link
What type of PR is this? (Check all applicable)
Screenshots (if applicable)
Checklist