fp/apps/bright/test/bright/patreon_entitlements_test.exs
CJ_Clippy 4225bbdf61
Some checks failed
ci / build (push) Failing after 4m19s
ci / Tests & Checks (push) Failing after 9m47s
controllers tests are passing
2025-02-12 06:09:01 -08:00

51 lines
1.4 KiB
Elixir

defmodule Bright.PatreonEntitlementsTest do
use ExUnit.Case
alias Bright.Patrons.PatreonEntitlements
describe "extract_tiers/1" do
test "handles empty included list" do
assert PatreonEntitlements.extract_tiers(%{"included" => []}) == []
end
test "handles no included list" do
assert PatreonEntitlements.extract_tiers(%{"data" => []}) == []
end
test "returns a list of tier IDs when included contains tier items" do
response_body = %{
"included" => [
%{"type" => "tier", "id" => "8154170"},
%{"type" => "tier", "id" => "22529959"},
# This should be ignored
%{"type" => "user", "id" => "12345"}
]
}
expected_result = ["8154170", "22529959"]
assert PatreonEntitlements.extract_tiers(response_body) == expected_result
end
test "returns an empty list when no tiers are included" do
response_body = %{
"included" => [
%{"type" => "user", "id" => "12345"}
]
}
assert PatreonEntitlements.extract_tiers(response_body) == []
end
test "returns an empty list when included is not present" do
response_body = %{}
assert PatreonEntitlements.extract_tiers(response_body) == []
end
test "returns an empty list when included is an empty list" do
response_body = %{"included" => []}
assert PatreonEntitlements.extract_tiers(response_body) == []
end
end
end