94 lines
2.7 KiB
JavaScript
94 lines
2.7 KiB
JavaScript
import { getHostname } from "./get-hostname";
|
|
describe("getHostname", ()=>{
|
|
describe("from URL", ()=>{
|
|
it.each([
|
|
{
|
|
url: "http://example.com",
|
|
hostname: "example.com"
|
|
},
|
|
{
|
|
url: "http://example.com/",
|
|
hostname: "example.com"
|
|
},
|
|
{
|
|
url: "http://example.com:3000",
|
|
hostname: "example.com"
|
|
},
|
|
{
|
|
url: "https://example.com",
|
|
hostname: "example.com"
|
|
},
|
|
{
|
|
url: "https://example.com/",
|
|
hostname: "example.com"
|
|
},
|
|
{
|
|
url: "https://example.com:3000",
|
|
hostname: "example.com"
|
|
},
|
|
{
|
|
url: "http://localhost",
|
|
hostname: "localhost"
|
|
},
|
|
{
|
|
url: "http://localhost/",
|
|
hostname: "localhost"
|
|
},
|
|
{
|
|
url: "http://localhost:3000",
|
|
hostname: "localhost"
|
|
},
|
|
{
|
|
url: "http://127.0.0.1",
|
|
hostname: "127.0.0.1"
|
|
},
|
|
{
|
|
url: "http://127.0.0.1/",
|
|
hostname: "127.0.0.1"
|
|
},
|
|
{
|
|
url: "http://127.0.0.1:3000",
|
|
hostname: "127.0.0.1"
|
|
},
|
|
{
|
|
url: "http://8.8.8.8",
|
|
hostname: "8.8.8.8"
|
|
},
|
|
{
|
|
url: "http://8.8.8.8/",
|
|
hostname: "8.8.8.8"
|
|
},
|
|
{
|
|
url: "http://8.8.8.8:3000",
|
|
hostname: "8.8.8.8"
|
|
}
|
|
])("should return $hostname for $url", (param)=>{
|
|
let { url, hostname } = param;
|
|
const parsed = new URL(url);
|
|
// Base case.
|
|
expect(getHostname(parsed)).toBe(hostname);
|
|
// With headers.
|
|
expect(getHostname(parsed, {
|
|
host: parsed.host
|
|
})).toBe(hostname);
|
|
// With an empty headers array.
|
|
expect(getHostname(parsed, {
|
|
host: []
|
|
})).toBe(hostname);
|
|
// With a headers array.
|
|
expect(getHostname({}, {
|
|
host: [
|
|
parsed.host
|
|
]
|
|
})).toBe(undefined);
|
|
});
|
|
});
|
|
it("should return undefined for empty input", ()=>{
|
|
expect(getHostname({})).toBe(undefined);
|
|
expect(getHostname({}, {
|
|
host: []
|
|
})).toBe(undefined);
|
|
});
|
|
});
|
|
|
|
//# sourceMappingURL=get-hostname.test.js.map
|