mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
103 lines
3.0 KiB
TypeScript
103 lines
3.0 KiB
TypeScript
import { describe, it, expect } from "bun:test";
|
|
|
|
describe("url", () => {
|
|
it("prints", () => {
|
|
expect(Bun.inspect(new URL("https://example.com"))).toBe(
|
|
"https://example.com/"
|
|
);
|
|
|
|
expect(
|
|
Bun.inspect(
|
|
new URL(
|
|
"https://github.com/oven-sh/bun/issues/135?hello%20i%20have%20spaces%20thank%20you%20good%20night"
|
|
)
|
|
)
|
|
).toBe(
|
|
"https://github.com/oven-sh/bun/issues/135?hello%20i%20have%20spaces%20thank%20you%20good%20night"
|
|
);
|
|
});
|
|
it("works", () => {
|
|
const inputs: [
|
|
[
|
|
string,
|
|
{
|
|
hash: string;
|
|
host: string;
|
|
hostname: string;
|
|
href: string;
|
|
origin: string;
|
|
password: string;
|
|
pathname: string;
|
|
port: string;
|
|
protocol: string;
|
|
search: string;
|
|
username: string;
|
|
}
|
|
]
|
|
] = [
|
|
[
|
|
"https://username:password@api.foo.bar.com:9999/baz/okay/i/123?ran=out&of=things#to-use-as-a-placeholder",
|
|
{
|
|
hash: "#to-use-as-a-placeholder",
|
|
host: "api.foo.bar.com:9999",
|
|
hostname: "api.foo.bar.com",
|
|
href: "https://username:password@api.foo.bar.com:9999/baz/okay/i/123?ran=out&of=things#to-use-as-a-placeholder",
|
|
origin: "https://api.foo.bar.com:9999",
|
|
password: "password",
|
|
pathname: "/baz/okay/i/123",
|
|
port: "9999",
|
|
protocol: "https:",
|
|
search: "?ran=out&of=things",
|
|
username: "username",
|
|
},
|
|
],
|
|
[
|
|
"https://url.spec.whatwg.org/#url-serializing",
|
|
{
|
|
hash: "#url-serializing",
|
|
host: "url.spec.whatwg.org",
|
|
hostname: "url.spec.whatwg.org",
|
|
href: "https://url.spec.whatwg.org/#url-serializing",
|
|
origin: "https://url.spec.whatwg.org",
|
|
password: "",
|
|
pathname: "/",
|
|
port: "",
|
|
protocol: "https:",
|
|
search: "",
|
|
username: "",
|
|
},
|
|
],
|
|
[
|
|
"https://url.spec.whatwg.org#url-serializing",
|
|
{
|
|
hash: "#url-serializing",
|
|
host: "url.spec.whatwg.org",
|
|
hostname: "url.spec.whatwg.org",
|
|
href: "https://url.spec.whatwg.org/#url-serializing",
|
|
origin: "https://url.spec.whatwg.org",
|
|
password: "",
|
|
pathname: "/",
|
|
port: "",
|
|
protocol: "https:",
|
|
search: "",
|
|
username: "",
|
|
},
|
|
],
|
|
];
|
|
|
|
for (let [url, values] of inputs) {
|
|
const result = new URL(url);
|
|
expect(result.hash).toBe(values.hash);
|
|
expect(result.host).toBe(values.host);
|
|
expect(result.hostname).toBe(values.hostname);
|
|
expect(result.href).toBe(values.href);
|
|
expect(result.password).toBe(values.password);
|
|
expect(result.pathname).toBe(values.pathname);
|
|
expect(result.port).toBe(values.port);
|
|
expect(result.protocol).toBe(values.protocol);
|
|
expect(result.search).toBe(values.search);
|
|
expect(result.username).toBe(values.username);
|
|
}
|
|
});
|
|
});
|