utils.test.js 1.53 KB
Newer Older
wuhao's avatar
wuhao committed
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
import { isUrl } from "./utils";

describe("isUrl tests", () => {
  it("should return false for invalid and corner case inputs", () => {
    expect(isUrl([])).toBeFalsy();
    expect(isUrl({})).toBeFalsy();
    expect(isUrl(false)).toBeFalsy();
    expect(isUrl(true)).toBeFalsy();
    expect(isUrl(NaN)).toBeFalsy();
    expect(isUrl(null)).toBeFalsy();
    expect(isUrl(undefined)).toBeFalsy();
    expect(isUrl("")).toBeFalsy();
  });
  it("should return false for invalid URLs", () => {
    expect(isUrl("foo")).toBeFalsy();
    expect(isUrl("bar")).toBeFalsy();
    expect(isUrl("bar/test")).toBeFalsy();
    expect(isUrl("http:/example.com/")).toBeFalsy();
    expect(isUrl("ttp://example.com/")).toBeFalsy();
  });
  it("should return true for valid URLs", () => {
    expect(isUrl("http://example.com/")).toBeTruthy();
    expect(isUrl("https://example.com/")).toBeTruthy();
    expect(isUrl("http://example.com/test/123")).toBeTruthy();
    expect(isUrl("https://example.com/test/123")).toBeTruthy();
    expect(isUrl("http://example.com/test/123?foo=bar")).toBeTruthy();
    expect(isUrl("https://example.com/test/123?foo=bar")).toBeTruthy();
    expect(isUrl("http://www.example.com/")).toBeTruthy();
    expect(isUrl("https://www.example.com/")).toBeTruthy();
    expect(isUrl("http://www.example.com/test/123")).toBeTruthy();
    expect(isUrl("https://www.example.com/test/123")).toBeTruthy();
    expect(isUrl("http://www.example.com/test/123?foo=bar")).toBeTruthy();
    expect(isUrl("https://www.example.com/test/123?foo=bar")).toBeTruthy();
  });
});