one
Version:
One is a new React Framework that makes Vite serve both native and web.
96 lines (94 loc) • 4.19 kB
JavaScript
;
var import_vitest = require("vitest");
var import_one_server_only = require("./one-server-only.native.js");
(0, import_vitest.describe)("mergeHeaders", function () {
(0, import_vitest.it)("merges regular headers", function () {
var onto = new Headers({
"content-type": "text/html"
});
var from = new Headers({
"x-custom": "value"
});
(0, import_one_server_only.mergeHeaders)(onto, from);
(0, import_vitest.expect)(onto.get("content-type")).toBe("text/html");
(0, import_vitest.expect)(onto.get("x-custom")).toBe("value");
});
(0, import_vitest.it)("overrides existing headers with set()", function () {
var onto = new Headers({
"cache-control": "no-cache"
});
var from = new Headers({
"cache-control": "max-age=3600"
});
(0, import_one_server_only.mergeHeaders)(onto, from);
(0, import_vitest.expect)(onto.get("cache-control")).toBe("max-age=3600");
});
(0, import_vitest.it)("deletes headers when value is undefined", function () {
var onto = new Headers({
"x-remove": "present"
});
var from = new Headers();
from.set("x-remove", "undefined");
(0, import_one_server_only.mergeHeaders)(onto, from);
(0, import_vitest.expect)(onto.has("x-remove")).toBe(false);
});
(0, import_vitest.it)("preserves multiple set-cookie headers from source", function () {
var onto = new Headers();
var from = new Headers();
from.append("set-cookie", "session=abc123; Path=/; HttpOnly");
from.append("set-cookie", "theme=dark; Path=/");
(0, import_one_server_only.mergeHeaders)(onto, from);
var cookies = onto.getSetCookie();
(0, import_vitest.expect)(cookies).toHaveLength(2);
(0, import_vitest.expect)(cookies).toContain("session=abc123; Path=/; HttpOnly");
(0, import_vitest.expect)(cookies).toContain("theme=dark; Path=/");
});
(0, import_vitest.it)("preserves existing set-cookie headers on target when merging", function () {
var onto = new Headers();
onto.append("set-cookie", "existing=keep; Path=/");
var from = new Headers();
from.append("set-cookie", "new=added; Path=/");
(0, import_one_server_only.mergeHeaders)(onto, from);
var cookies = onto.getSetCookie();
(0, import_vitest.expect)(cookies).toHaveLength(2);
(0, import_vitest.expect)(cookies).toContain("existing=keep; Path=/");
(0, import_vitest.expect)(cookies).toContain("new=added; Path=/");
});
(0, import_vitest.it)("handles three or more set-cookie headers", function () {
var onto = new Headers();
var from = new Headers();
from.append("set-cookie", "a=1; Path=/");
from.append("set-cookie", "b=2; Path=/");
from.append("set-cookie", "c=3; Path=/");
(0, import_one_server_only.mergeHeaders)(onto, from);
var cookies = onto.getSetCookie();
(0, import_vitest.expect)(cookies).toHaveLength(3);
(0, import_vitest.expect)(cookies).toContain("a=1; Path=/");
(0, import_vitest.expect)(cookies).toContain("b=2; Path=/");
(0, import_vitest.expect)(cookies).toContain("c=3; Path=/");
});
(0, import_vitest.it)("merges set-cookie alongside regular headers", function () {
var onto = new Headers();
var from = new Headers({
"content-type": "text/html"
});
from.append("set-cookie", "session=abc; Path=/");
from.append("set-cookie", "csrf=xyz; Path=/");
(0, import_one_server_only.mergeHeaders)(onto, from);
(0, import_vitest.expect)(onto.get("content-type")).toBe("text/html");
var cookies = onto.getSetCookie();
(0, import_vitest.expect)(cookies).toHaveLength(2);
(0, import_vitest.expect)(cookies).toContain("session=abc; Path=/");
(0, import_vitest.expect)(cookies).toContain("csrf=xyz; Path=/");
});
(0, import_vitest.it)("handles source with no set-cookie headers", function () {
var onto = new Headers();
var from = new Headers({
"x-foo": "bar"
});
(0, import_one_server_only.mergeHeaders)(onto, from);
(0, import_vitest.expect)(onto.getSetCookie()).toHaveLength(0);
(0, import_vitest.expect)(onto.get("x-foo")).toBe("bar");
});
});
//# sourceMappingURL=one-server-only.test.native.js.map