fix(common): Add missing exception classes to HttpErrorByCode#17256
Closed
Se3do wants to merge 1 commit into
Closed
fix(common): Add missing exception classes to HttpErrorByCode#17256Se3do wants to merge 1 commit into
Se3do wants to merge 1 commit into
Conversation
HttpErrorByCode map was missing MisdirectedException (421) and HttpVersionNotSupportedException (505) that already existed on disk. Added imports, type union entries, and map entries. Added test file verifying all entries resolve to valid HttpException subclasses.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes missing HTTP exception mappings in HttpErrorByCode by adding support for 421 MISDIRECTED and 505 HTTP_VERSION_NOT_SUPPORTED, aligning runtime behavior and TypeScript typing with the existing built-in exception set.
Changes:
- Add
MisdirectedExceptionandHttpVersionNotSupportedExceptionto theErrorHttpStatusCodeunion andHttpErrorByCoderecord. - Add a new test suite for
HttpErrorByCodeto validate mappings and default messages.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| packages/common/utils/http-error-by-code.util.ts | Extends the status-code-to-exception mapping and the corresponding status code union to include 421 and 505. |
| packages/common/test/utils/http-error-by-code.util.spec.ts | Adds tests for HttpErrorByCode coverage, mapping correctness, and default messages for the newly included exceptions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+11
to
+36
| it('should have an entry for every ErrorHttpStatusCode', () => { | ||
| const expectedCodes = [ | ||
| HttpStatus.BAD_GATEWAY, | ||
| HttpStatus.BAD_REQUEST, | ||
| HttpStatus.CONFLICT, | ||
| HttpStatus.FORBIDDEN, | ||
| HttpStatus.GATEWAY_TIMEOUT, | ||
| HttpStatus.GONE, | ||
| HttpStatus.HTTP_VERSION_NOT_SUPPORTED, | ||
| HttpStatus.I_AM_A_TEAPOT, | ||
| HttpStatus.INTERNAL_SERVER_ERROR, | ||
| HttpStatus.METHOD_NOT_ALLOWED, | ||
| HttpStatus.MISDIRECTED, | ||
| HttpStatus.NOT_ACCEPTABLE, | ||
| HttpStatus.NOT_FOUND, | ||
| HttpStatus.NOT_IMPLEMENTED, | ||
| HttpStatus.PAYLOAD_TOO_LARGE, | ||
| HttpStatus.PRECONDITION_FAILED, | ||
| HttpStatus.REQUEST_TIMEOUT, | ||
| HttpStatus.SERVICE_UNAVAILABLE, | ||
| HttpStatus.UNAUTHORIZED, | ||
| HttpStatus.UNPROCESSABLE_ENTITY, | ||
| HttpStatus.UNSUPPORTED_MEDIA_TYPE, | ||
| ]; | ||
| expect(entries.length).to.equal(expectedCodes.length); | ||
| }); |
| expect(entries.length).to.equal(expectedCodes.length); | ||
| }); | ||
|
|
||
| it('should map every code to a class that extends HttpException', () => { |
Coverage Report for CI Build 19898Coverage remained the same at 89.924%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
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.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
HttpErrorByCodemap inpackages/common/utils/http-error-by-code.util.tsis missingMisdirectedException(421) andHttpVersionNotSupportedException(505). Both classes exist on disk and are exported frompackages/common/exceptions/index.ts, but are absent from theErrorHttpStatusCodetype union and theHttpErrorByCodeRecord. UsingerrorHttpStatusCode: HttpStatus.MISDIRECTEDin pipe options causes a TypeScript type error, andHttpErrorByCode[HttpStatus.MISDIRECTED]returnsundefinedat runtime.Issue Number: N/A
What is the new behavior?
Both
MisdirectedExceptionandHttpVersionNotSupportedExceptionare now imported, added to theErrorHttpStatusCodetype union, and mapped in theHttpErrorByCodeRecord— consistent with the 19 other exception classes already present. Added 5 unit tests verifying all 21 entries resolve to validHttpExceptionsubclasses with correct status codes.Does this PR introduce a breaking change?
Other information