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