import { describe, expect, test } from "vitest";
import { maybeUrl } from "./utils";

describe("maybeURL works as expected", () => {
  test("basic valid URL case", () => {
    const result = maybeUrl("https://example.com");
    expect(result.isUrl).toBe(true);
    expect(result.url).toBe("https://example.com");
    expect(result.text).toBe("Link");
  });

  test("special URL syntax", () => {
    const result = maybeUrl("[My Text](http://example.com)");
    expect(result.isUrl).toBe(true);
    expect(result.url).toBe("http://example.com");
    expect(result.text).toBe("My Text");
  });

  test("not a url", () => {
    const result = maybeUrl("not a url");
    expect(result.isUrl).toBe(false);
    expect(result.url).toBe("");
    expect(result.text).toBe("");
  });

  test("malformed special syntax", () => {
    const result = maybeUrl("[My Text(http://example.com)");
    expect(result.isUrl).toBe(false);
    expect(result.url).toBe("");
    expect(result.text).toBe("");
  });
});