37 lines
1.1 KiB
Elixir
37 lines
1.1 KiB
Elixir
defmodule Plausible.Billing.PaddleApiTest do
|
|
use Plausible.DataCase
|
|
|
|
import Mox
|
|
setup :verify_on_exit!
|
|
|
|
@success "fixture/paddle_prices_success_response.json" |> File.read!() |> Jason.decode!()
|
|
|
|
describe "fetch_prices/1" do
|
|
test "returns %Money{} structs per product_id when given a list of product_ids" do
|
|
expect(
|
|
Plausible.HTTPClient.Mock,
|
|
:get,
|
|
fn "https://checkout.paddle.com/api/2.0/prices",
|
|
[{"content-type", "application/json"}, {"accept", "application/json"}],
|
|
%{product_ids: "19878,20127,20657,20658"} ->
|
|
{:ok,
|
|
%Finch.Response{
|
|
status: 200,
|
|
headers: [{"content-type", "application/json"}],
|
|
body: @success
|
|
}}
|
|
end
|
|
)
|
|
|
|
assert Plausible.Billing.PaddleApi.fetch_prices(["19878", "20127", "20657", "20658"]) ==
|
|
{:ok,
|
|
%{
|
|
"19878" => Money.new(:EUR, "6.0"),
|
|
"20127" => Money.new(:EUR, "60.0"),
|
|
"20657" => Money.new(:EUR, "12.34"),
|
|
"20658" => Money.new(:EUR, "120.34")
|
|
}}
|
|
end
|
|
end
|
|
end
|