mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-01-02 19:08:28 -05:00
35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# Documentation for development
|
||
|
||
### Adding a new profile variable
|
||
|
||
To add a profile variable (personality type, etc.), make modifications here:
|
||
|
||
* [schema.prisma](../prisma/schema.prisma)
|
||
* [seed.ts](../prisma/seed.ts)
|
||
* [profile.tsx](../lib/client/profile.tsx)
|
||
* [schema.ts](../lib/client/schema.ts)
|
||
* [page.tsx](../app/complete-profile/page.tsx)
|
||
* [page.tsx](../app/profiles/page.tsx)
|
||
* [ProfileFilters.tsx](../app/profiles/ProfileFilters.tsx)
|
||
* [route.ts](../app/api/profiles/route.ts)
|
||
* [route.ts](../app/api/profiles/%5Bid%5D/route.ts)
|
||
* [route.ts](../app/api/user/update-profile/route.ts)
|
||
|
||
Then update the database:
|
||
|
||
```bash
|
||
npx prisma migrate dev --name add-some-profile-variable
|
||
```
|
||
|
||
### Cover with tests
|
||
|
||
Best Practices
|
||
|
||
* Test Behavior, Not Implementation. Don’t test internal state or function calls unless you’re testing utilities or very critical behavior.
|
||
* Use msw to Mock APIs. Don't manually mock fetch—use msw to simulate realistic behavior, including network delays and errors.
|
||
* Don’t Overuse Snapshots. Snapshots are fragile and often meaningless unless used sparingly (e.g., for JSON response schemas).
|
||
* Prefer userEvent Over fireEvent. It simulates real user interactions more accurately.
|
||
* Avoid Testing Next.js Internals . You don’t need to test getStaticProps, getServerSideProps themselves—test what they render.
|
||
* Use jest.spyOn() for Internal Utilities . Avoid reaching into modules you don’t own.
|
||
* Don't test just for coverage. Test to prevent regressions, document intent, and handle edge cases.
|
||
* Don't write end-to-end tests for features that change frequently unless absolutely necessary. |