Skip to main content

test/hex_wan30_test.exs

defmodule HexWan30Test do
  use ExUnit.Case, async: true

  test "builds root url" do
    assert HexWan30.url() == "https://wan30.video"
  end

  test "builds campaign url" do
    assert HexWan30.campaign_url("/pricing",
             source: "hex",
             medium: "package",
             campaign: "launch"
           ) ==
             "https://wan30.video/pricing?utm_campaign=launch&utm_medium=package&utm_source=hex"
  end

  test "builds referral url" do
    assert HexWan30.referral_url("creator-42") == "https://wan30.video?ref=creator-42"
  end

  test "builds share url" do
    assert HexWan30.generate_share_url("/gallery", ref: "creator-42", source: "hex") ==
             "https://wan30.video/gallery?ref=creator-42&utm_source=hex"
  end

  test "builds embed url" do
    assert HexWan30.embed_url("demo-video", autoplay: true) ==
             "https://wan30.video/embed?asset=demo-video&autoplay=1"
  end

  test "signs and verifies webhooks" do
    payload = ~s({"event":"render.completed"})
    signature = HexWan30.sign_webhook(payload, "topsecret")

    assert HexWan30.verify_webhook_signature(payload, signature, "topsecret")
    refute HexWan30.verify_webhook_signature(payload, signature, "wrong-secret")
  end
end