Current section

Files

Jump to
ex_openpay test openpay charge_test.exs
Raw

test/openpay/charge_test.exs

defmodule ExOpenpay.ChargeTest do
use ExUnit.Case
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
setup_all do
use_cassette "charge_test/setup", match_requests_on: [:query, :request_body] do
customer = Helper.create_test_customer "customer_test1@gmail.com"
on_exit fn ->
use_cassette "charge_test/teardown1", match_requests_on: [:query, :request_body] do
ExOpenpay.Customers.delete customer.id
end
end
new_card = [
card_number: "4111111111111111",
holder_name: "Juan Perez Ramirez",
expiration_year: "20",
expiration_month: "12",
cvv2: "110"
# device_session_id: "",
]
new_card2 = [
card_number: "4111111111111111",
holder_name: "Paco Sanchez Ramirez",
expiration_year: "19",
expiration_month: "10",
cvv2: "210"
# device_session_id: "",
]
case ExOpenpay.Cards.create :customer, customer.id, new_card2 do
{:ok, card2} ->
case ExOpenpay.Cards.create :customer, customer.id, new_card do
{:ok, card} ->
new_charge = [
source_id: card.id,
method: "card",
amount: 100,
currency: "MXN",
description: "Cargo inicial a mi cuenta",
# order_id: "grvty-00004",
device_session_id: "kR1MiQhz2otdIuUlQkbEyitIqVMiI16f",
]
on_exit fn ->
use_cassette "charge_test/teardown2", match_requests_on: [:query, :request_body] do
ExOpenpay.Cards.delete :customer, customer.id, card.id
ExOpenpay.Cards.delete :customer, customer.id, card2.id
end
end
{:ok, [customer: customer, card: card, card2: card2, new_charge: new_charge]}
{:error, err} -> flunk err
end
{:error, err} -> flunk err
end
end
end
@tag disabled: false
test "With Card ID or Token", %{customer: customer, new_charge: new_charge} do
use_cassette "charge_test/create_with_card_id" do
case ExOpenpay.Charges.create(customer.id, new_charge) do
{:ok, res} -> assert res
{:error, err} -> flunk Map.get(err, "description")
end
end
end
end