diff options
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(); +    }); +  } +}); | 
