require "test_helper" class Promoter::PayoutsControllerTest < ActionDispatch::IntegrationTest setup do @user = users(:one) @event = events(:concert_event) @payout = payouts(:one) end test "should get index" do sign_in @user # Make the user a promoter @user.update(is_professionnal: true) get promoter_payouts_url assert_response :success end test "should get show" do sign_in @user # Make the user a promoter @user.update(is_professionnal: true) # Create a payout that belongs to the user payout = Payout.create!( user: @user, event: @event, amount_cents: 1000, fee_cents: 100 ) get promoter_payout_url(payout) assert_response :success end test "should create payout" do sign_in @user # Make the user a promoter @user.update(is_professionnal: true) # Make the user the owner of the event @event.update(user: @user) # Make the event end in the past @event.update(end_time: 1.day.ago) # Create some earnings for the event @event.earnings.create!( user: @user, order: orders(:paid_order), amount_cents: 1000, fee_cents: 100, status: :pending ) assert_difference('Payout.count', 1) do post promoter_payouts_url, params: { event_id: @event.id } end assert_redirected_to promoter_payout_path(Payout.last) end end