Files
aperonight/test/services/payout_service_test.rb

44 lines
1.5 KiB
Ruby

require "test_helper"
require "stripe"
class PayoutServiceTest < ActiveSupport::TestCase
setup do
@user = users(:one)
@event = events(:concert_event)
@payout = Payout.create!(user: @user, event: @event, amount_cents: 9000, fee_cents: 1000)
Stripe.api_key = "test_key"
end
test "generate_transfer_summary returns payout details" do
@user.update!(iban: "FR1420041010050500013M02606", bank_name: "Test Bank", account_holder_name: "John Doe")
@payout.update(status: :approved)
service = PayoutService.new(@payout)
summary = service.generate_transfer_summary
assert_not_nil summary
assert_equal @payout.id, summary[:payout_id]
assert_equal @user.name, summary[:recipient]
assert_equal @user.account_holder_name, summary[:account_holder]
assert_equal @user.bank_name, summary[:bank_name]
assert_equal @user.iban, summary[:iban]
end
test "validate_banking_info returns errors for missing data" do
service = PayoutService.new(@payout)
errors = service.validate_banking_info
assert_includes errors, "Missing IBAN"
assert_includes errors, "Missing bank name"
assert_includes errors, "Missing account holder name"
end
test "validate_banking_info returns no errors for complete data" do
@user.update!(iban: "FR1420041010050500013M02606", bank_name: "Test Bank", account_holder_name: "John Doe")
service = PayoutService.new(@payout)
errors = service.validate_banking_info
assert_empty errors
end
end