# frozen_string_literal: true
require "test_helper"
require "buy_account_credit_form"
require "customer"
class BuyAccountCreditFormTest < Minitest::Test
def setup
@customer = Customer.new(
1,
plan_name: "test_usd",
balance: BigDecimal.new("12.1234")
)
@customer.instance_variable_set(
:@payment_methods,
EMPromise.resolve(PaymentMethods.new([
OpenStruct.new(card_type: "Test", last_4: "1234")
]))
)
@form = BuyAccountCreditForm.new(@customer)
end
def test_balance
assert_equal(
{ type: "fixed", value: "Current balance: $12.12" },
@form.balance
)
end
def test_add_to_form
iq_form = Blather::Stanza::X.new
@form.add_to_form(iq_form).sync
assert_equal :form, iq_form.type
assert_equal "Buy Account Credit", iq_form.title
assert_equal(
[
Blather::Stanza::X::Field.new(
type: "fixed",
value: "Current balance: $12.12"
),
Blather::Stanza::X::Field.new(
type: "list-single",
var: "payment_method",
label: "Credit card to pay with",
value: "",
required: true,
options: [{ label: "Test 1234", value: "0" }]
),
BuyAccountCreditForm::AMOUNT_FIELD
],
iq_form.fields
)
end
em :test_add_to_form
end