defmodule HexSeedanceTest do use ExUnit.Case, async: true test "builds root url" do assert HexSeedance.url() == "https://aiseedance2.net" end test "builds campaign url" do assert HexSeedance.campaign_url("/pricing", source: "hex", medium: "package", campaign: "launch" ) == "https://aiseedance2.net/pricing?utm_campaign=launch&utm_medium=package&utm_source=hex" end test "builds referral url" do assert HexSeedance.referral_url("creator-42") == "https://aiseedance2.net?ref=creator-42" end test "builds share url" do assert HexSeedance.generate_share_url("/gallery", ref: "creator-42", source: "hex") == "https://aiseedance2.net/gallery?ref=creator-42&utm_source=hex" end test "builds embed url" do assert HexSeedance.embed_url("demo-video", autoplay: true) == "https://aiseedance2.net/embed?asset=demo-video&autoplay=1" end test "signs and verifies webhooks" do payload = ~s({"event":"render.completed"}) signature = HexSeedance.sign_webhook(payload, "topsecret") assert HexSeedance.verify_webhook_signature(payload, signature, "topsecret") refute HexSeedance.verify_webhook_signature(payload, signature, "wrong-secret") end end