deno.land / std@0.173.0 / http / http_errors_test.ts

http_errors_test.ts
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import { assert, assertEquals, assertInstanceOf } from "../testing/asserts.ts";
import { type ErrorStatus, Status, STATUS_TEXT } from "./http_status.ts";
import { createHttpError, errors, type ErrorStatusKeys, HttpError,} from "./http_errors.ts";
const clientErrorStatus: ErrorStatus[] = [ Status.BadRequest, Status.Unauthorized, Status.PaymentRequired, Status.Forbidden, Status.NotFound, Status.MethodNotAllowed, Status.NotAcceptable, Status.ProxyAuthRequired, Status.RequestTimeout, Status.Conflict, Status.Gone, Status.LengthRequired, Status.PreconditionFailed, Status.RequestEntityTooLarge, Status.RequestURITooLong, Status.UnsupportedMediaType, Status.RequestedRangeNotSatisfiable, Status.ExpectationFailed, Status.Teapot, Status.MisdirectedRequest, Status.UnprocessableEntity, Status.Locked, Status.FailedDependency, Status.UpgradeRequired, Status.PreconditionRequired, Status.TooManyRequests, Status.RequestHeaderFieldsTooLarge, Status.UnavailableForLegalReasons,];
const serverErrorStatus: ErrorStatus[] = [ Status.InternalServerError, Status.NotImplemented, Status.BadGateway, Status.ServiceUnavailable, Status.GatewayTimeout, Status.HTTPVersionNotSupported, Status.VariantAlsoNegotiates, Status.InsufficientStorage, Status.LoopDetected, Status.NotExtended, Status.NetworkAuthenticationRequired,];
Deno.test({ name: "http_error - validate client errors", fn() { for (const errorStatus of clientErrorStatus) { const error = createHttpError(errorStatus); const errorExpose = createHttpError( errorStatus, STATUS_TEXT[errorStatus], { expose: false, headers: new Headers({ "WWW-Authenticate": "Bearer" }), }, ); assertInstanceOf(error, HttpError); assertInstanceOf(error, errors[Status[errorStatus] as ErrorStatusKeys]); assertEquals(error.name, `${Status[errorStatus]}Error`); assertEquals(error.message, STATUS_TEXT[errorStatus]); assertEquals(errorExpose.status, errorStatus); assertEquals(errorExpose.headers?.get("WWW-Authenticate"), "Bearer"); assert(error.expose); assert(!errorExpose.expose); } },});
Deno.test({ name: "http_error - validate server errors", fn() { for (const errorStatus of serverErrorStatus) { const error = createHttpError(errorStatus); const errorExpose = createHttpError( errorStatus, STATUS_TEXT[errorStatus], { expose: true, }, ); assertInstanceOf(error, HttpError); assertInstanceOf(error, errors[Status[errorStatus] as ErrorStatusKeys]); assertEquals(error.name, `${Status[errorStatus]}Error`); assertEquals(error.message, STATUS_TEXT[errorStatus]); assertEquals(error.status, errorStatus); assert(!error.expose); assert(errorExpose.expose); assert(!error.headers); } },});
std

Version Info

Tagged at
a year ago