Files
bun.sh/test/bun.js/url.test.ts
Colin McDonnell f7f1b60444 Add bun-types, add typechecking, add child_process types (#1475)
* Add bun-types to packages

* Improve typing

* Fix types in tests

* Fix dts tests

* Run formatter

* Fix all type errors

* Add strict mode, fix type errors

* Add ffi changes

* Move workflows to root

* Add workflows

* Remove labeler

* Add child_process types

* Fix synthetic defaults issue

* Remove docs

* Move scripts

* Run prettier

* Include examples in typechecking

* captureStackTrace types

* moved captureStackTrace types to globals

* Address reviews

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2022-11-09 15:40:40 -08:00

86 lines
2.7 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 = [
[
"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: "",
},
],
] as const;
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);
}
});
});