mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 10:58:56 +00:00
67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { sep } from "node:path";
|
|
|
|
test("zero args returns an otherwise empty 200 response", () => {
|
|
const response = new Response();
|
|
expect(response.status).toBe(200);
|
|
expect(response.statusText).toBe("");
|
|
});
|
|
|
|
test("calling cancel() on response body doesn't throw", () => {
|
|
expect(() => new Response("").body?.cancel()).not.toThrow();
|
|
});
|
|
|
|
test("undefined args don't throw", () => {
|
|
const response = new Response("", {
|
|
status: undefined,
|
|
statusText: undefined,
|
|
headers: undefined,
|
|
});
|
|
expect(response.status).toBe(200);
|
|
expect(response.statusText).toBe("");
|
|
});
|
|
|
|
test("1-arg form returns a 200 response", () => {
|
|
const response = new Response("body text");
|
|
|
|
expect(response.status).toBe(200);
|
|
expect(response.statusText).toBe("");
|
|
});
|
|
|
|
describe("2-arg form", () => {
|
|
test("can fill in status/statusText, and it works", () => {
|
|
const response = new Response("body text", {
|
|
status: 202,
|
|
statusText: "Accepted.",
|
|
});
|
|
|
|
expect(response.status).toBe(202);
|
|
expect(response.statusText).toBe("Accepted.");
|
|
});
|
|
test('empty object continues to return 200/""', () => {
|
|
const response = new Response("body text", {});
|
|
|
|
expect(response.status).toBe(200);
|
|
expect(response.statusText).toBe("");
|
|
});
|
|
});
|
|
|
|
test("print size", () => {
|
|
expect(Bun.inspect(new Response(Bun.file(import.meta.filename)))).toMatchInlineSnapshot(`
|
|
"Response (1.81 KB) {
|
|
ok: true,
|
|
url: "",
|
|
status: 200,
|
|
statusText: "",
|
|
headers: Headers {
|
|
"content-type": "text/javascript;charset=utf-8",
|
|
},
|
|
redirected: false,
|
|
bodyUsed: false,
|
|
FileRef ("${import.meta.dir}${sep}response.test.ts") {
|
|
type: "text/javascript;charset=utf-8"
|
|
}
|
|
}"
|
|
`);
|
|
});
|