jam-cloud/web/spec/features/account_payment_spec.rb

109 lines
3.2 KiB
Ruby

require 'spec_helper'
describe "Account Payment", :js => true, :type => :feature, :capybara_feature => true do
subject { page }
let(:user) { FactoryGirl.create(:user, traditional_band: true,paid_sessions: true, paid_sessions_hourly_rate: 1, paid_sessions_daily_rate:1 ) }
let(:jam_track) {FactoryGirl.create(:jam_track)}
before(:each) do
JamTrackRight.delete_all
JamTrack.delete_all
AffiliateQuarterlyPayment.delete_all
AffiliateMonthlyPayment.delete_all
AffiliateTrafficTotal.delete_all
UserMailer.deliveries.clear
emulate_client
sign_in_poltergeist user
visit "/client#/account"
find('div.account-mid.identity')
end
describe "payment history" do
it "show 1 sale" do
sale = Sale.create_jam_track_sale(user)
shopping_cart = ShoppingCart.create(user, jam_track)
sale_line_item = SaleLineItem.create_from_shopping_cart(sale, shopping_cart, nil, 'some_adjustment_uuid', nil)
visit "/client#/account"
find('.account-mid.payments', text: 'You have made 1 purchase.')
find("#account-payment-history-link").click
find('.account-header', text: 'payment history:')
find('table tr td', text: '$0.00') # 1st purchase is free
find('.profile-tile.student a', text: 'payment method').click
fill_in 'card-number', with: '4111111111111111'
fill_in 'expiration', with: '11/2016'
fill_in 'cvv', with: '111'
fill_in 'zip', with: '78759'
find('.purchase-btn').click
find('a.update-btn', text: "I'D LIKE TO UPDATE MY PAYMENT INFO").click
user.reload
user.stripe_customer_id.should_not be_nil
user.stripe_token.should_not be_nil
original_token = user.stripe_token
fill_in 'card-number', with: '4111111111111111'
fill_in 'expiration', with: '11/2016'
fill_in 'cvv', with: '111'
fill_in 'zip', with: '78759'
find('.purchase-btn').click
find('a.update-btn', text: "I'D LIKE TO UPDATE MY PAYMENT INFO").click
user.reload
original_token.should_not eql user.stripe_token
end
end
xit "handles unpaid lessons" do
teacher = FactoryGirl.create(:teacher_user)
lesson_session = normal_lesson(user, teacher)
lesson_session.lesson_payment_charge.user.should eql user
lesson_session.lesson_payment_charge.billing_attempts = 1
lesson_session.lesson_payment_charge.save!
uncollectables = user.uncollectables
uncollectables.count.should eql 1
visit "/client#/account"
find('.account-mid.payments', text: 'You have made no purchases.')
sleep 2
find("#account-payment-history-link").click
find('.account-header', text: 'payment history:')
find('.uncollectable-msg', text: 'You have unpaid lessons')
find('.uncollectable-msg a').click
fill_in 'card-number', with: '4111111111111111'
fill_in 'expiration', with: '11/2016'
fill_in 'cvv', with: '111'
fill_in 'zip', with: '78759'
find('.purchase-btn').click
find('#banner .dialog-inner', text: 'Your credit card info has been updated')
# dismiss banner
find('a.button-orange', text:'CLOSE').click
user.reload
user.stripe_customer_id.should_not be_nil
user.stripe_token.should_not be_nil
end
end