Skip to content

fix: make all tests pass — implement missing functions and fix edge-case bugs - #308

Open
stooit wants to merge 1 commit into
mainfrom
quantcode/e2e-tier1-2168-1787947451
Open

fix: make all tests pass — implement missing functions and fix edge-case bugs#308
stooit wants to merge 1 commit into
mainfrom
quantcode/e2e-tier1-2168-1787947451

Conversation

@stooit

@stooit stooit commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes all 16 failing tests in the utility library. Suite now: 60 pass / 0 fail (was 44 pass / 16 fail). No test files modified, no dependencies added.

Changes

  • src/calculator.tsdivide now throws on division by zero instead of returning Infinity.
  • src/date-utils.tsformatRelative uses Math.round for the day count, fixing the off-by-one (36 hours ago → "2 days ago").
  • src/string-utils.tswordCount collapses consecutive whitespace (splits on /\s+/); implemented truncate (word-boundary truncation with "..." counting toward maxLength, returns unchanged when within limit).
  • src/task-manager.ts — implemented remove (returns bool), update (title/description/priority, returns bool), and sortBy (priority high>medium>low, createdAt oldest-first, status).
  • src/validator.tsisEmail accepts long TLDs (e.g. .museum); isUrl accepts URLs with a port (e.g. http://localhost:3000). Protocol allow-list preserved (javascript:, data:, ftp: still rejected).

Verification

  • bun test → 60 pass / 0 fail
  • tsc --noEmit → clean
  • Confirmed none of the previously-passing 44 tests regressed.

Scope & assumptions

Per task constraints ("fix only what the tests require"), changes are limited to what the failing tests exercise. Review surfaced a few latent edge cases not covered by any test (leading-whitespace in truncate, clearing an optional description via update, non-numeric-id tiebreak in sortBy, and the isUrl/isEmail permissiveness as a display-only validator vs. an egress/SSRF guard). These were intentionally left out of scope to avoid changing untested behaviour; they can be tracked as follow-ups if desired.

🤖 Generated autonomously.

…ests

- calculator: throw on division by zero instead of returning Infinity
- date-utils: use Math.round for relative-day formatting (off-by-one)
- string-utils: fix wordCount for consecutive whitespace; implement truncate
- task-manager: implement remove, update, and sortBy methods
- validator: accept long TLDs in isEmail and ports in isUrl

All 60 tests pass (was 44 pass / 16 fail); no test files or dependencies changed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant