fix: resolve issues #136, #142, #149 — READMEs, e2e booking, fuzz tests - #219
Merged
dzekojohn4 merged 6 commits intoJul 30, 2026
Merged
Conversation
…s1#149 - READMEs, e2e booking, fuzz tests Closes NovaCoreLabs1#136 — Add README.md to every backend module folder (17 new READMEs covering auth, audit-log, bookings, cloudinary, common, config, contact, dashboard, email, invoices, metrics, newsletter, notifications, payments, utils, workspace-tracking, workspaces). Added CI check script. Closes NovaCoreLabs1#142 — End-to-end test coverage for the public booking funnel. Created frontend/tests/e2e/booking.spec.ts with Playwright tests covering browse → book → pay → dashboard with mocked Paystack via page.route(). Closes NovaCoreLabs1#149 — Adversarial fuzz tests against /auth/login payloads. Created backend/tests/fuzz/login.fuzz.ts (configurable iterations via FUZZ_ITERATIONS env var) with jest-fuzz.json config and test:fuzz script. Also: fixed payment.spec.ts import.meta CJS issue, added @playwright/test dependency.
Runs scripts/check-module-readmes.js during the backend job so CI fails if any backend module folder is missing a README.md (issue NovaCoreLabs1#136).
Runs booking.spec.ts and payment.spec.ts on every PR/push to main. Includes browser caching and failure artifact upload (issue NovaCoreLabs1#142).
Runs backend/tests/fuzz/login.fuzz.ts every Saturday at 04:00 UTC with 50k iterations. Supports manual dispatch with configurable iteration count. Posts results as a comment to issue NovaCoreLabs1#149 with pass/fail against the 0.05% threshold (issue NovaCoreLabs1#149).
Configures testDir, testMatch, timeout (30s), retries (1 on CI), reporters (html + github on CI), baseURL, screenshot/trace on failure, and Desktop Chrome device profile. Adds forbidOnly on CI.
dzekojohn4
approved these changes
Jul 30, 2026
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Resolves all three issues assigned to @dorisadams in a single PR.
✅ Closes #136 — Add README.md to every backend module folder
Created 17 new README.md files across all backend modules missing one:
auth,audit-log,bookings,cloudinary,common,config,contact,dashboard,email,invoices,metrics,newsletter,notifications,payments,utils,workspace-tracking,workspacesEach README follows the existing pattern: purpose, key entities, endpoints, and key files.
scripts/check-module-readmes.jsfor CI enforcement✅ Closes #142 — End-to-end test coverage for the public booking funnel
Created
frontend/tests/e2e/booking.spec.tswith 7 Playwright tests:All tests use
page.route()mocking — no dev server needed.✅ Closes #149 — Adversarial fuzz tests against /auth/login
Created
backend/tests/fuzz/login.fuzz.ts— sends configurable random payloads (default 5k, CI uses 50k) and asserts 5xx error rate < 0.05%.backend/jest-fuzz.jsonconfig +test:fuzzscript/auth/loginpayloads (REST) #149🔧 Additional fixes
payment.spec.tsimport.metaCJS issue (inlined fixture)@playwright/testdev dependencytest-results/to.gitignore✅ All tests passing