diff options
author | 2022-11-26 18:03:20 -0800 | |
---|---|---|
committer | 2022-11-26 18:03:20 -0800 | |
commit | 949d715a141890286d3b04ded8e209ac899ed2af (patch) | |
tree | 3a221ad04ca7ae9ad0e1f3cfdb7f4e62ee5ebbde /test/bun.js | |
parent | 90388aa7ea719578025901ed20e495e50ceb012f (diff) | |
download | bun-949d715a141890286d3b04ded8e209ac899ed2af.tar.gz bun-949d715a141890286d3b04ded8e209ac899ed2af.tar.zst bun-949d715a141890286d3b04ded8e209ac899ed2af.zip |
Make HTTP status text more consistent with other HTTP servers
Diffstat (limited to '')
-rw-r--r-- | test/bun.js/serve.test.ts | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/test/bun.js/serve.test.ts b/test/bun.js/serve.test.ts index ea175dca5..91b57a738 100644 --- a/test/bun.js/serve.test.ts +++ b/test/bun.js/serve.test.ts @@ -598,3 +598,83 @@ it("should support reloading", async () => { expect(await response2.text()).toBe("second"); server.stop(); }); + +describe("status code text", () => { + const fixture = { + 200: "OK", + 201: "Created", + 202: "Accepted", + 203: "Non-Authoritative Information", + 204: "No Content", + 205: "Reset Content", + 206: "Partial Content", + 207: "Multi-Status", + 208: "Already Reported", + 226: "IM Used", + 300: "Multiple Choices", + 301: "Moved Permanently", + 302: "Found", + 303: "See Other", + 304: "Not Modified", + 305: "Use Proxy", + 306: "Switch Proxy", + 307: "Temporary Redirect", + 308: "Permanent Redirect", + 400: "Bad Request", + 401: "Unauthorized", + 402: "Payment Required", + 403: "Forbidden", + 404: "Not Found", + 405: "Method Not Allowed", + 406: "Not Acceptable", + 407: "Proxy Authentication Required", + 408: "Request Timeout", + 409: "Conflict", + 410: "Gone", + 411: "Length Required", + 412: "Precondition Failed", + 413: "Payload Too Large", + 414: "URI Too Long", + 415: "Unsupported Media Type", + 416: "Range Not Satisfiable", + 417: "Expectation Failed", + 418: "I'm a Teapot", + 421: "Misdirected Request", + 422: "Unprocessable Entity", + 423: "Locked", + 424: "Failed Dependency", + 425: "Too Early", + 426: "Upgrade Required", + 428: "Precondition Required", + 429: "Too Many Requests", + 431: "Request Header Fields Too Large", + 451: "Unavailable For Legal Reasons", + 500: "Internal Server Error", + 501: "Not Implemented", + 502: "Bad Gateway", + 503: "Service Unavailable", + 504: "Gateway Timeout", + 505: "HTTP Version Not Supported", + 506: "Variant Also Negotiates", + 507: "Insufficient Storage", + 508: "Loop Detected", + 510: "Not Extended", + 511: "Network Authentication Required", + }; + + for (let code in fixture) { + it(`should return ${code} ${fixture[code]}`, async () => { + const server = serve({ + port: port++, + fetch(req) { + return new Response("hey", { status: +code }); + }, + }); + + const response = await fetch(`http://${server.hostname}:${server.port}`); + expect(response.status).toBe(parseInt(code)); + expect(response.statusText).toBe(fixture[code]); + server.stop(); + }); + } +}); |