Add unit tests for user service and configure Jest #78
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR introduces the initial testing infrastructure for the project, addressing the "No tests are available" status noted in the README. It specifically focuses on unit testing the service layer to ensure business logic is decoupled from database dependencies.
Changes Made
jestandsupertestdev-dependencies to establish a standardized testing environment.server/test/controller/user.service.test.jsto validate thegetUserslogic.jest.mockfor theUsermodel to facilitate isolated testing of the service layer without requiring a live MongoDB connection or impacting theMONGODB_URI.@babel/preset-envconfiguration to allow ES Module syntax (import/export) within test files, maintaining consistency with theserver/srccodebase.Testing Coverage
The new test suite covers the following scenarios for
server/src/service/user.service.js:User.find()is called without arguments when no ID is provided.User.find({ id })is called with the correct filter when a specific ID is passed.Technical Details
npm test.Checklist