51 lines
1.4 KiB
Elixir
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
|