# 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