Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 2,348 Bytes
52c6f5c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import { describe, expect, it } from "vitest";
import { extractDomain } from "./url.js";
describe("extractDomain", () => {
it("should handle regular domains", () => {
expect(extractDomain("https://example.com")).toBe("example.com");
});
it("should handle single subdomains", () => {
expect(extractDomain("https://sub.example.com")).toBe("example.com");
});
it("should handle multiple subdomains", () => {
expect(extractDomain("https://sub1.sub2.example.com")).toBe("example.com");
expect(extractDomain("https://deep.sub.domain.co.uk")).toBe("domain.co.uk");
expect(extractDomain("https://a.b.c.d.e.f.g.example.net")).toBe("example.net");
});
it("should handle special TLDs like co.uk", () => {
expect(extractDomain("https://domain.co.uk")).toBe("domain.co.uk");
expect(extractDomain("https://sub.domain.co.uk")).toBe("domain.co.uk");
expect(extractDomain("https://another.domain.com.au")).toBe("domain.com.au");
});
it("should handle localhost", () => {
expect(extractDomain("http://localhost:3000")).toBe("localhost");
expect(extractDomain("http://localhost")).toBe("localhost");
});
it("should handle non-HTTP/HTTPS protocols", () => {
expect(extractDomain("ftp://files.example.com")).toBe("example.com");
expect(extractDomain("ws://websocket.example.com")).toBe("example.com");
});
it("should handle non-string values", () => {
expect(extractDomain(12345)).toBeNull();
expect(extractDomain({})).toBeNull();
expect(extractDomain(["https://example.com"])).toBeNull();
expect(extractDomain(true)).toBeNull();
});
it("should handle URL instances", () => {
expect(extractDomain(new URL("https://test.example.com"))).toBe("example.com");
expect(extractDomain(new URL("https://deeply.nested.subdomain.example.org"))).toBe("example.org");
});
it("should handle invalid URLs gracefully", () => {
expect(extractDomain("not-a-url")).toBeNull();
expect(extractDomain("htt:invalid-url")).toBeNull();
expect(extractDomain("example")).toBeNull();
expect(extractDomain("http://")).toBeNull();
});
it("should handle tricky but valid URLs", () => {
expect(extractDomain("https://example.com#hash")).toBe("example.com");
expect(extractDomain("https://example.com/path")).toBe("example.com");
expect(extractDomain("https://example.com/path?query=string")).toBe("example.com");
});
});
|