@fastly/as-fetch
Version:
 
99 lines (76 loc) • 2.42 kB
text/typescript
// Copyright 2020 Fastly, Inc.
import { Headers } from "../headers";
describe("Headers", () => {
test("constructor", () => {
let headers = new Headers();
expect(headers).toBeTruthy();
});
test("get/set", () => {
let headers = new Headers();
headers.set("Name", "Value");
expect(headers.get("Name")).toBe("Value");
});
test("Header Names should be case-insensitive", () => {
let headers = new Headers();
headers.set("Name", "Value");
headers.set("nAMe", "Value2");
expect(headers.get("Name")).toBe("Value2");
});
test("set invalid Header name, 'Invalid Name `', should error", () => {
expect(() => {
let headers = new Headers();
headers.set("Invalid Name `", "Value");
}).toThrow();
});
test("Header name edge cases should be valid (AAA, aaa, ZZZ, zzz)", () => {
let headers = new Headers();
headers.set("AAA", "AAA");
expect(headers.get("AAA")).toBe("AAA");
headers.set("aaa", "aaa");
expect(headers.get("aaa")).toBe("aaa");
headers.set("ZZZ", "ZZZ");
expect(headers.get("ZZZ")).toBe("ZZZ");
headers.set("zzz", "zzz");
expect(headers.get("zzz")).toBe("zzz");
});
test("set invalid Header value, 'Φ', should error", () => {
expect(() => {
let headers = new Headers();
headers.set("Name", "Φ");
}).toThrow();
});
test("Empty header values should be valid", () => {
let headers = new Headers();
headers.set("Name", "");
expect(headers.get("Name")).toBe("");
});
test("append", () => {
let headers = new Headers();
headers.set("Name", "Value");
headers.append("Name", "Value2");
expect(headers.get("Name")).toBe("Value, Value2");
});
test("has", () => {
let headers = new Headers();
headers.set("Name", "Value");
expect(headers.has("Name")).toBe(true);
});
test("delete", () => {
let headers = new Headers();
headers.set("Name", "Value");
headers.delete("Name");
expect(headers.get("Name")).toBe(null);
});
test("keys", () => {
let headers = new Headers();
headers.set("Name", "Value");
headers.set("Name2", "Value2");
expect(headers.keys().toString()).toBe("name,name2");
});
test("values", () => {
let headers = new Headers();
headers.set("Name", "Value");
headers.set("Name2", "Value2");
expect(headers.values().toString()).toBe("Value,Value2");
});
});