diff --git a/src/parseDomain.js b/src/parseDomain.js index de42ebd..8db058a 100644 --- a/src/parseDomain.js +++ b/src/parseDomain.js @@ -70,8 +70,8 @@ function parseDomain(url, options) { } domain = urlSplit[3]; // domain will now be something like sub.domain.example.com - tld = matchTld(domain, normalizedOptions); + if (tld === null) { return null; } @@ -83,7 +83,9 @@ function parseDomain(url, options) { // removes the remaining dot, if present (added to handle localhost) tld = tld.slice(1); } + domain = urlSplit.pop(); + const subdomain = urlSplit.join("."); return { diff --git a/test/parseDomain.test.js b/test/parseDomain.test.js index e87d287..bf96656 100644 --- a/test/parseDomain.test.js +++ b/test/parseDomain.test.js @@ -141,14 +141,13 @@ describe("parseDomain(url)", () => { it("should return null if the given value is not a string", () => { expect(parseDomain(undefined)).to.equal(null); expect(parseDomain({})).to.equal(null); - expect(parseDomain("")).to.equal(null); - expect(parseDomain(" ")).to.equal(null); - expect(parseDomain("\xa0")).to.equal(null); }); - it("should return null if the given value contains invalid characters", () => { - expect(parseDomain("http://hell.d\ne.ibm.com")).to.equal(null); + it("should return null if the given string is not a valid URL", () => { expect(parseDomain("\xa0")).to.equal(null); + expect(parseDomain("")).to.equal(null); + expect(parseDomain(" ")).to.equal(null); + expect(parseDomain("http://hell.d\ne.ibm.com")).to.equal(null); }); it("should return null if the given is an empty string with a space character", () => {