Add comprehensive test coverage and update documentation #360

Merged
Phoenixxo merged 31 commits from test/test_overhaul into development 2026-03-04 18:38:10 +00:00
Phoenixxo commented 2026-03-04 06:23:19 +00:00 (Migrated from github.com)

Summary

Expanded backend/API test coverage across the codebase, added CI checks for lint/test, and refreshed testing documentation to reflect current coverage status and next priorities.

What changed:

  • Added iterative test coverage for API route handlers across:
  • invitations/memberships
  • schedule/courseTaken/hourBlocks
  • quotes/projects/officer/admin
  • mentor lifecycle + mentoring/headcount routes
  • alumni/public intake routes
  • library routes (book/books/categories/copies/search/statistics/isbnlookup/uploadImage)
  • auth/platform routes (auth/[...nextauth], email/send, aws/*)
  • Closed all remaining API route test gaps under next/app/api/**/route.ts
  • Added HTML test report scripts:
  • test:report in next/package.json
  • root forwarding test:report in package.json
  • cross-platform opener helper: next/scripts/openCoverageReport.mjs
  • Added CI workflows:
  • .github/workflows/lint.yml
  • .github/workflows/test.yml
  • Added path filters + concurrency cancellation to lint/test workflows
  • Updated documentation/TestingAudit.md with current numbers and remaining non-route gaps

Linked Story / Issue

Type of Change

  • Feature
  • Bug fix
  • Refactor
  • Docs
  • Test
  • Chore

Scope

  • In scope:
  • Backend/API route test expansion and completion
  • CI lint/test workflow setup + optimization
  • Coverage report generation command and opener helper
  • Testing audit documentation refresh
  • Out of scope:
  • Service/lib deep refactors
  • Runtime behavior changes unrelated to testability/CI

Validation

From next/:

  • npm run lint
  • npm run test
  • npm run build

Manual verification steps:

  1. Run npm run test and confirm full suite passes.
  2. Run npm run test:report and confirm HTML report is generated.
  3. Open next/coverage/index.html (auto-open attempted by script; fallback path is printed if opener unavailable).

Database / API / Env Impact

  • No impact
  • Prisma/schema migration included
  • New/updated env vars documented
  • API contract changed (documented)

Documentation

  • No docs update required
  • Updated documentation/EnvironmentSetup.md
  • Updated documentation/CodingStyle.md
  • Updated other docs (list below)

Docs updated:

  • Basically all

Screenshots / Recordings (if UI changed)

N/A (no UI changes)

Checklist

  • I assigned myself to the linked story/issue
  • Branch name follows convention (type/storyid-short-summary) (sure)
  • Acceptance criteria are satisfied
  • Project board status has been updated
## Summary Expanded backend/API test coverage across the codebase, added CI checks for lint/test, and refreshed testing documentation to reflect current coverage status and next priorities. What changed: - Added iterative test coverage for API route handlers across: - invitations/memberships - schedule/courseTaken/hourBlocks - quotes/projects/officer/admin - mentor lifecycle + mentoring/headcount routes - alumni/public intake routes - library routes (book/books/categories/copies/search/statistics/isbnlookup/uploadImage) - auth/platform routes (auth/[...nextauth], email/send, aws/*) - Closed all remaining API route test gaps under next/app/api/**/route.ts - Added HTML test report scripts: - test:report in next/package.json - root forwarding test:report in package.json - cross-platform opener helper: next/scripts/openCoverageReport.mjs - Added CI workflows: - .github/workflows/lint.yml - .github/workflows/test.yml - Added path filters + concurrency cancellation to lint/test workflows - Updated documentation/TestingAudit.md with current numbers and remaining non-route gaps ## Linked Story / Issue - Closes #358, #359 ## Type of Change - [ ] Feature - [ ] Bug fix - [ ] Refactor - [x] Docs - [x] Test - [x] Chore ## Scope - In scope: - Backend/API route test expansion and completion - CI lint/test workflow setup + optimization - Coverage report generation command and opener helper - Testing audit documentation refresh - Out of scope: - Service/lib deep refactors - Runtime behavior changes unrelated to testability/CI ## Validation From next/: - [x] npm run lint - [x] npm run test - [x] npm run build Manual verification steps: 1. Run npm run test and confirm full suite passes. 2. Run npm run test:report and confirm HTML report is generated. 3. Open next/coverage/index.html (auto-open attempted by script; fallback path is printed if opener unavailable). ## Database / API / Env Impact - [x] No impact - [ ] Prisma/schema migration included - [ ] New/updated env vars documented - [ ] API contract changed (documented) ## Documentation - [ ] No docs update required - [x] Updated documentation/EnvironmentSetup.md - [x] Updated documentation/CodingStyle.md - [x] Updated other docs (list below) Docs updated: - Basically all ## Screenshots / Recordings (if UI changed) N/A (no UI changes) ## Checklist - [x] I assigned myself to the linked story/issue - [x] Branch name follows convention (type/storyid-short-summary) (sure) - [x] Acceptance criteria are satisfied - [x] Project board status has been updated
pybash (Migrated from github.com) reviewed 2026-03-04 06:23:19 +00:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2026-03-04 17:45:29 +00:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull request overview

This PR migrates backend/API route testing from Jest to Vitest, closes remaining API route test gaps under next/app/api/**/route.ts, adds CI lint/test workflows, and refreshes contributor + environment/testing documentation to match the new workflow.

Changes:

  • Switched Next app tests to Vitest (config + setup + scripts), added coverage HTML report command + opener helper.
  • Added/expanded route-level tests across a broad set of API endpoints under next/app/api/**.
  • Added GitHub Actions workflows for lint/test and refreshed contributor + environment docs and GitHub templates.

Reviewed changes

Copilot reviewed 104 out of 107 changed files in this pull request and generated no comments.

Show a summary per file
File Description
next/vitest.setup.ts Adds Vitest setup/polyfill for Response.json in test runtime.
next/vitest.config.ts Adds Vitest config including @ alias and setup file.
next/scripts/openCoverageReport.mjs Cross-platform helper to open the HTML coverage report.
next/package.json Switches to ESLint CLI + Vitest; adds watch/report scripts; upgrades Next + ESLint toolchain deps.
next/next.config.js Adds Turbopack root config for repo layout; minor formatting tweaks.
next/jest.setup.ts Removes Jest setup (migration to Vitest).
next/jest.config.mjs Removes Jest config (migration to Vitest).
next/eslint.config.mjs Introduces ESLint flat config with Next core-web-vitals base + a few warnings.
next/app/api/library/book/route.ts Tweaks ISBN validation placement and guards image write in POST.
next/tests/when2meet.route.test.ts Adds Vitest coverage for /api/when2meet.
next/tests/user.search.route.test.ts Adds Vitest coverage for /api/user/search.
next/tests/user.route.test.ts Adds Vitest coverage for /api/user.
next/tests/user.profile.route.test.ts Adds Vitest coverage for /api/user/[id]/profile.
next/tests/user.id.route.test.ts Adds Vitest coverage for /api/user/[id].
next/tests/swipe-access.route.test.ts Adds Vitest coverage for /api/swipe-access.
next/tests/sponsor.route.test.ts Adds Vitest coverage for /api/sponsor.
next/tests/skills.route.test.ts Adds Vitest coverage for /api/skills.
next/tests/skills.id.route.test.ts Adds Vitest coverage for /api/skills/[id].
next/tests/scheduleBlock.route.test.ts Adds Vitest coverage for /api/scheduleBlock.
next/tests/schedule.route.test.ts Adds Vitest coverage for /api/schedule.
next/tests/schedule.id.route.test.ts Adds Vitest coverage for /api/schedule/[id].
next/tests/quotes.route.test.ts Adds Vitest coverage for /api/quotes.
next/tests/quotes.id.route.test.ts Adds Vitest coverage for /api/quotes/[id].
next/tests/purchasing.route.test.ts Adds Vitest coverage for /api/purchasing.
next/tests/purchasing.id.route.test.ts Adds Vitest coverage for /api/purchasing/[id].
next/tests/purchasing.email.route.test.ts Adds Vitest coverage for /api/purchasing/[id]/email.
next/tests/projectContributor.route.test.ts Adds Vitest coverage for /api/projectContributor.
next/tests/projectContributor.id.route.test.ts Adds Vitest coverage for /api/projectContributor/[id].
next/tests/project.route.test.ts Adds Vitest coverage for /api/project.
next/tests/project.id.route.test.ts Adds Vitest coverage for /api/project/[id].
next/tests/officerPositions.route.test.ts Adds Vitest coverage for /api/officer-positions.
next/tests/officer.active.route.test.ts Adds Vitest coverage for /api/officer/[active].
next/tests/mentoringHeadcount.route.test.ts Adds Vitest coverage for /api/mentoring-headcount.
next/tests/mentorSkill.route.test.ts Adds Vitest coverage for /api/mentorSkill.
next/tests/mentorSkill.id.route.test.ts Adds Vitest coverage for /api/mentorSkill/[id].
next/tests/mentorSemester.route.test.ts Adds Vitest coverage for /api/mentor-semester.
next/tests/mentorSchedule.route.test.ts Adds Vitest coverage for /api/mentorSchedule.
next/tests/mentorAvailability.updates.route.test.ts Adds Vitest coverage for /api/mentor-availability/updates.
next/tests/mentorAvailability.route.test.ts Adds Vitest coverage for /api/mentor-availability.
next/tests/mentorApplication.route.test.ts Adds Vitest coverage for /api/mentor-application.
next/tests/mentor.id.route.test.ts Adds Vitest coverage for /api/mentor/[id].
next/tests/menteeHeadcount.route.test.ts Adds Vitest coverage for /api/mentee-headcount.
next/tests/memberships.route.test.ts Adds Vitest coverage for /api/memberships.
next/tests/lifecycle.test.ts Updates existing unit tests to import Vitest APIs.
next/tests/library.uploadImage.route.test.ts Adds Vitest coverage for /api/library/uploadImage.
next/tests/library.statistics.route.test.ts Adds Vitest coverage for /api/library/statistics.
next/tests/library.search.route.test.ts Adds Vitest coverage for /api/library/search.
next/tests/library.isbnlookup.route.test.ts Adds Vitest coverage for /api/library/isbnlookup.
next/tests/library.copies.route.test.ts Adds Vitest coverage for /api/library/copies.
next/tests/library.categories.route.test.ts Adds Vitest coverage for /api/library/categories.
next/tests/library.books.route.test.ts Adds Vitest coverage for /api/library/books.
next/tests/library.book.route.test.ts Adds Vitest coverage for /api/library/book.
next/tests/invitations.route.test.ts Adds Vitest coverage for /api/invitations.
next/tests/invitations.pending.route.test.ts Adds Vitest coverage for /api/invitations/pending.
next/tests/invitations.acceptDecline.route.test.ts Adds Vitest coverage for /api/invitations/accept and /api/invitations/decline.
next/tests/hourBlocks.route.test.ts Adds Vitest coverage for /api/hourBlocks.
next/tests/hourBlocks.id.route.test.ts Adds Vitest coverage for /api/hourBlocks/[id].
next/tests/headcountTrends.route.test.ts Adds Vitest coverage for /api/headcount-trends.
next/tests/headcountImport.route.test.ts Adds Vitest coverage for /api/headcount-import.
next/tests/handover.position.route.test.ts Adds Vitest coverage for /api/handover/[positionId].
next/tests/golinks.route.test.ts Adds Vitest coverage for /api/golinks mutations.
next/tests/golinks.read.route.test.ts Adds Vitest coverage for /api/golinks/public, /api/golinks/officer, and /api/go/[golink].
next/tests/event.route.test.ts Adds Vitest coverage for /api/event.
next/tests/event.id.route.test.ts Adds Vitest coverage for /api/event/[id].
next/tests/event.attendance.route.test.ts Adds Vitest coverage for /api/event/[id]/attendance.
next/tests/event.assets.route.test.ts Adds Vitest coverage for event asset routes (/purchases, /qr, /flyer).
next/tests/email.send.route.test.ts Adds Vitest coverage for /api/email/send.
next/tests/departments.route.test.ts Adds Vitest coverage for /api/departments.
next/tests/departments.id.route.test.ts Adds Vitest coverage for /api/departments/[id].
next/tests/courseTaken.route.test.ts Adds Vitest coverage for /api/courseTaken.
next/tests/course.route.test.ts Adds Vitest coverage for /api/course.
next/tests/course.id.route.test.ts Adds Vitest coverage for /api/course/[id].
next/tests/calendar.route.test.ts Adds Vitest coverage for /api/calendar.
next/tests/calendar.id.route.test.ts Adds Vitest coverage for /api/calendar/[id].
next/tests/aws.profilePictures.route.test.ts Adds Vitest coverage for /api/aws/profilePictures.
next/tests/aws.officerPictures.route.test.ts Adds Vitest coverage for deprecated /api/aws/officerPictures.
next/tests/aws.image.route.test.ts Adds Vitest coverage for /api/aws/image.
next/tests/authMiddleware.test.ts Adds Vitest coverage for authMiddleware.
next/tests/authLevelResolver.test.ts Adds Vitest coverage for auth-level resolution utilities.
next/tests/authLevel.route.test.ts Adds Vitest coverage for /api/authLevel.
next/tests/authGateway.test.ts Adds Vitest coverage for getGatewayAuthLevel.
next/tests/auth.nextauth.route.test.ts Adds Vitest coverage for /api/auth/[...nextauth] handler export behavior.
next/tests/api.test.ts Converts prior Jest-style mentor API test to Vitest and updates mocks/expectations.
next/tests/alumni.route.test.ts Adds Vitest coverage for /api/alumni.
next/tests/alumni.requests.route.test.ts Adds Vitest coverage for /api/alumni-requests.
next/tests/alumni.email.route.test.ts Adds Vitest coverage for /api/alumni/email.
next/tests/alumni.candidates.route.test.ts Adds Vitest coverage for /api/alumni-candidates.
next/tests/alumni.active.route.test.ts Adds Vitest coverage for /api/alumni/[active].
next/.eslintrc.json Removes legacy .eslintrc config (migration to flat config).
documentation/README.md Expands documentation index/read order and standards.
documentation/EnvironmentSetup.md Adds local-prod parity + validation steps; adds Docker Compose option + SMTP section.
documentation/CodingStyle.md Adds coding/testing conventions and “before opening a PR” checklist.
docker-compose.dev.yml Adds local Postgres + MailHog dev compose stack.
CONTRIBUTING.md Overhauls contributing workflow, branch naming, PR requirements, and DoD.
.github/workflows/test.yml Adds CI workflow running npm run test under next/.
.github/workflows/lint.yml Adds CI workflow running npm run lint under next/.
.github/PULL_REQUEST_TEMPLATE.md Adds standardized PR template aligned with new workflow.
.github/ISSUE_TEMPLATE/task.md Refreshes task template structure and defaults (labeling, sections).
.github/ISSUE_TEMPLATE/story.md Refreshes story template structure and defaults (labeling, sections).
.github/ISSUE_TEMPLATE/spike.md Refreshes spike template structure and defaults (labeling, sections).
.github/ISSUE_TEMPLATE/feature_request.md Refreshes feature request template structure and defaults.
.github/ISSUE_TEMPLATE/epic.md Refreshes epic template structure and defaults.
.github/ISSUE_TEMPLATE/bug_report.md Refreshes bug report template structure and defaults.

Key review findings (need follow-up before merge):

  • next/app/api/library/book/route.ts: newly added hasPrivilegedAccess() is unused; also POST now permits missing image but still writes an image path into the DB record, which can create broken links unless the API enforces an image upload or stores null/omits the path when missing.
  • next/scripts/openCoverageReport.mjs: fallback message prints next/coverage/index.html while the opener targets coverage/index.html (relative). The message/path should match the actual working directory assumptions to avoid confusion.
  • .github/workflows/lint.yml and .github/workflows/test.yml target branches: [main, development] while updated docs reference merging into dev; branch naming should be made consistent so CI reliably runs on the intended protected branch.
  • Toolchain upgrade impact: next@16.1.6 in next/package-lock.json requires Node >=20.9.0—docs should explicitly call out the minimum Node version expected for local dev to avoid setup failures.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

## Pull request overview This PR migrates backend/API route testing from Jest to Vitest, closes remaining API route test gaps under `next/app/api/**/route.ts`, adds CI lint/test workflows, and refreshes contributor + environment/testing documentation to match the new workflow. **Changes:** - Switched Next app tests to Vitest (config + setup + scripts), added coverage HTML report command + opener helper. - Added/expanded route-level tests across a broad set of API endpoints under `next/app/api/**`. - Added GitHub Actions workflows for lint/test and refreshed contributor + environment docs and GitHub templates. ### Reviewed changes Copilot reviewed 104 out of 107 changed files in this pull request and generated no comments. <details> <summary>Show a summary per file</summary> | File | Description | | ---- | ----------- | | next/vitest.setup.ts | Adds Vitest setup/polyfill for `Response.json` in test runtime. | | next/vitest.config.ts | Adds Vitest config including `@` alias and setup file. | | next/scripts/openCoverageReport.mjs | Cross-platform helper to open the HTML coverage report. | | next/package.json | Switches to ESLint CLI + Vitest; adds watch/report scripts; upgrades Next + ESLint toolchain deps. | | next/next.config.js | Adds Turbopack root config for repo layout; minor formatting tweaks. | | next/jest.setup.ts | Removes Jest setup (migration to Vitest). | | next/jest.config.mjs | Removes Jest config (migration to Vitest). | | next/eslint.config.mjs | Introduces ESLint flat config with Next core-web-vitals base + a few warnings. | | next/app/api/library/book/route.ts | Tweaks ISBN validation placement and guards image write in POST. | | next/__tests__/when2meet.route.test.ts | Adds Vitest coverage for `/api/when2meet`. | | next/__tests__/user.search.route.test.ts | Adds Vitest coverage for `/api/user/search`. | | next/__tests__/user.route.test.ts | Adds Vitest coverage for `/api/user`. | | next/__tests__/user.profile.route.test.ts | Adds Vitest coverage for `/api/user/[id]/profile`. | | next/__tests__/user.id.route.test.ts | Adds Vitest coverage for `/api/user/[id]`. | | next/__tests__/swipe-access.route.test.ts | Adds Vitest coverage for `/api/swipe-access`. | | next/__tests__/sponsor.route.test.ts | Adds Vitest coverage for `/api/sponsor`. | | next/__tests__/skills.route.test.ts | Adds Vitest coverage for `/api/skills`. | | next/__tests__/skills.id.route.test.ts | Adds Vitest coverage for `/api/skills/[id]`. | | next/__tests__/scheduleBlock.route.test.ts | Adds Vitest coverage for `/api/scheduleBlock`. | | next/__tests__/schedule.route.test.ts | Adds Vitest coverage for `/api/schedule`. | | next/__tests__/schedule.id.route.test.ts | Adds Vitest coverage for `/api/schedule/[id]`. | | next/__tests__/quotes.route.test.ts | Adds Vitest coverage for `/api/quotes`. | | next/__tests__/quotes.id.route.test.ts | Adds Vitest coverage for `/api/quotes/[id]`. | | next/__tests__/purchasing.route.test.ts | Adds Vitest coverage for `/api/purchasing`. | | next/__tests__/purchasing.id.route.test.ts | Adds Vitest coverage for `/api/purchasing/[id]`. | | next/__tests__/purchasing.email.route.test.ts | Adds Vitest coverage for `/api/purchasing/[id]/email`. | | next/__tests__/projectContributor.route.test.ts | Adds Vitest coverage for `/api/projectContributor`. | | next/__tests__/projectContributor.id.route.test.ts | Adds Vitest coverage for `/api/projectContributor/[id]`. | | next/__tests__/project.route.test.ts | Adds Vitest coverage for `/api/project`. | | next/__tests__/project.id.route.test.ts | Adds Vitest coverage for `/api/project/[id]`. | | next/__tests__/officerPositions.route.test.ts | Adds Vitest coverage for `/api/officer-positions`. | | next/__tests__/officer.active.route.test.ts | Adds Vitest coverage for `/api/officer/[active]`. | | next/__tests__/mentoringHeadcount.route.test.ts | Adds Vitest coverage for `/api/mentoring-headcount`. | | next/__tests__/mentorSkill.route.test.ts | Adds Vitest coverage for `/api/mentorSkill`. | | next/__tests__/mentorSkill.id.route.test.ts | Adds Vitest coverage for `/api/mentorSkill/[id]`. | | next/__tests__/mentorSemester.route.test.ts | Adds Vitest coverage for `/api/mentor-semester`. | | next/__tests__/mentorSchedule.route.test.ts | Adds Vitest coverage for `/api/mentorSchedule`. | | next/__tests__/mentorAvailability.updates.route.test.ts | Adds Vitest coverage for `/api/mentor-availability/updates`. | | next/__tests__/mentorAvailability.route.test.ts | Adds Vitest coverage for `/api/mentor-availability`. | | next/__tests__/mentorApplication.route.test.ts | Adds Vitest coverage for `/api/mentor-application`. | | next/__tests__/mentor.id.route.test.ts | Adds Vitest coverage for `/api/mentor/[id]`. | | next/__tests__/menteeHeadcount.route.test.ts | Adds Vitest coverage for `/api/mentee-headcount`. | | next/__tests__/memberships.route.test.ts | Adds Vitest coverage for `/api/memberships`. | | next/__tests__/lifecycle.test.ts | Updates existing unit tests to import Vitest APIs. | | next/__tests__/library.uploadImage.route.test.ts | Adds Vitest coverage for `/api/library/uploadImage`. | | next/__tests__/library.statistics.route.test.ts | Adds Vitest coverage for `/api/library/statistics`. | | next/__tests__/library.search.route.test.ts | Adds Vitest coverage for `/api/library/search`. | | next/__tests__/library.isbnlookup.route.test.ts | Adds Vitest coverage for `/api/library/isbnlookup`. | | next/__tests__/library.copies.route.test.ts | Adds Vitest coverage for `/api/library/copies`. | | next/__tests__/library.categories.route.test.ts | Adds Vitest coverage for `/api/library/categories`. | | next/__tests__/library.books.route.test.ts | Adds Vitest coverage for `/api/library/books`. | | next/__tests__/library.book.route.test.ts | Adds Vitest coverage for `/api/library/book`. | | next/__tests__/invitations.route.test.ts | Adds Vitest coverage for `/api/invitations`. | | next/__tests__/invitations.pending.route.test.ts | Adds Vitest coverage for `/api/invitations/pending`. | | next/__tests__/invitations.acceptDecline.route.test.ts | Adds Vitest coverage for `/api/invitations/accept` and `/api/invitations/decline`. | | next/__tests__/hourBlocks.route.test.ts | Adds Vitest coverage for `/api/hourBlocks`. | | next/__tests__/hourBlocks.id.route.test.ts | Adds Vitest coverage for `/api/hourBlocks/[id]`. | | next/__tests__/headcountTrends.route.test.ts | Adds Vitest coverage for `/api/headcount-trends`. | | next/__tests__/headcountImport.route.test.ts | Adds Vitest coverage for `/api/headcount-import`. | | next/__tests__/handover.position.route.test.ts | Adds Vitest coverage for `/api/handover/[positionId]`. | | next/__tests__/golinks.route.test.ts | Adds Vitest coverage for `/api/golinks` mutations. | | next/__tests__/golinks.read.route.test.ts | Adds Vitest coverage for `/api/golinks/public`, `/api/golinks/officer`, and `/api/go/[golink]`. | | next/__tests__/event.route.test.ts | Adds Vitest coverage for `/api/event`. | | next/__tests__/event.id.route.test.ts | Adds Vitest coverage for `/api/event/[id]`. | | next/__tests__/event.attendance.route.test.ts | Adds Vitest coverage for `/api/event/[id]/attendance`. | | next/__tests__/event.assets.route.test.ts | Adds Vitest coverage for event asset routes (`/purchases`, `/qr`, `/flyer`). | | next/__tests__/email.send.route.test.ts | Adds Vitest coverage for `/api/email/send`. | | next/__tests__/departments.route.test.ts | Adds Vitest coverage for `/api/departments`. | | next/__tests__/departments.id.route.test.ts | Adds Vitest coverage for `/api/departments/[id]`. | | next/__tests__/courseTaken.route.test.ts | Adds Vitest coverage for `/api/courseTaken`. | | next/__tests__/course.route.test.ts | Adds Vitest coverage for `/api/course`. | | next/__tests__/course.id.route.test.ts | Adds Vitest coverage for `/api/course/[id]`. | | next/__tests__/calendar.route.test.ts | Adds Vitest coverage for `/api/calendar`. | | next/__tests__/calendar.id.route.test.ts | Adds Vitest coverage for `/api/calendar/[id]`. | | next/__tests__/aws.profilePictures.route.test.ts | Adds Vitest coverage for `/api/aws/profilePictures`. | | next/__tests__/aws.officerPictures.route.test.ts | Adds Vitest coverage for deprecated `/api/aws/officerPictures`. | | next/__tests__/aws.image.route.test.ts | Adds Vitest coverage for `/api/aws/image`. | | next/__tests__/authMiddleware.test.ts | Adds Vitest coverage for `authMiddleware`. | | next/__tests__/authLevelResolver.test.ts | Adds Vitest coverage for auth-level resolution utilities. | | next/__tests__/authLevel.route.test.ts | Adds Vitest coverage for `/api/authLevel`. | | next/__tests__/authGateway.test.ts | Adds Vitest coverage for `getGatewayAuthLevel`. | | next/__tests__/auth.nextauth.route.test.ts | Adds Vitest coverage for `/api/auth/[...nextauth]` handler export behavior. | | next/__tests__/api.test.ts | Converts prior Jest-style mentor API test to Vitest and updates mocks/expectations. | | next/__tests__/alumni.route.test.ts | Adds Vitest coverage for `/api/alumni`. | | next/__tests__/alumni.requests.route.test.ts | Adds Vitest coverage for `/api/alumni-requests`. | | next/__tests__/alumni.email.route.test.ts | Adds Vitest coverage for `/api/alumni/email`. | | next/__tests__/alumni.candidates.route.test.ts | Adds Vitest coverage for `/api/alumni-candidates`. | | next/__tests__/alumni.active.route.test.ts | Adds Vitest coverage for `/api/alumni/[active]`. | | next/.eslintrc.json | Removes legacy `.eslintrc` config (migration to flat config). | | documentation/README.md | Expands documentation index/read order and standards. | | documentation/EnvironmentSetup.md | Adds local-prod parity + validation steps; adds Docker Compose option + SMTP section. | | documentation/CodingStyle.md | Adds coding/testing conventions and “before opening a PR” checklist. | | docker-compose.dev.yml | Adds local Postgres + MailHog dev compose stack. | | CONTRIBUTING.md | Overhauls contributing workflow, branch naming, PR requirements, and DoD. | | .github/workflows/test.yml | Adds CI workflow running `npm run test` under `next/`. | | .github/workflows/lint.yml | Adds CI workflow running `npm run lint` under `next/`. | | .github/PULL_REQUEST_TEMPLATE.md | Adds standardized PR template aligned with new workflow. | | .github/ISSUE_TEMPLATE/task.md | Refreshes task template structure and defaults (labeling, sections). | | .github/ISSUE_TEMPLATE/story.md | Refreshes story template structure and defaults (labeling, sections). | | .github/ISSUE_TEMPLATE/spike.md | Refreshes spike template structure and defaults (labeling, sections). | | .github/ISSUE_TEMPLATE/feature_request.md | Refreshes feature request template structure and defaults. | | .github/ISSUE_TEMPLATE/epic.md | Refreshes epic template structure and defaults. | | .github/ISSUE_TEMPLATE/bug_report.md | Refreshes bug report template structure and defaults. | **Key review findings (need follow-up before merge):** - `next/app/api/library/book/route.ts`: newly added `hasPrivilegedAccess()` is unused; also POST now permits missing `image` but still writes an `image` path into the DB record, which can create broken links unless the API enforces an image upload or stores `null`/omits the path when missing. - `next/scripts/openCoverageReport.mjs`: fallback message prints `next/coverage/index.html` while the opener targets `coverage/index.html` (relative). The message/path should match the actual working directory assumptions to avoid confusion. - `.github/workflows/lint.yml` and `.github/workflows/test.yml` target `branches: [main, development]` while updated docs reference merging into `dev`; branch naming should be made consistent so CI reliably runs on the intended protected branch. - Toolchain upgrade impact: `next@16.1.6` in `next/package-lock.json` requires Node `>=20.9.0`—docs should explicitly call out the minimum Node version expected for local dev to avoid setup failures. </details> --- 💡 <a href="/rit-sse/WebsiteTheSSEquel/new/main?filename=.github/instructions/*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.<br><br>You can also share your feedback on Copilot code review. [Take the survey](https://www.surveymonkey.com/r/XP6L3XJ).
pybash commented 2026-03-04 17:50:14 +00:00 (Migrated from github.com)

LGTM! 🚀 🚀 🚀 🚀 🌕

LGTM! 🚀 🚀 🚀 🚀 🌕
jjalangtry (Migrated from github.com) approved these changes 2026-03-04 18:26:25 +00:00
jjalangtry (Migrated from github.com) left a comment

fuck yeah

fuck yeah
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
SSE/WebsiteTheSSEquel!360
No description provided.