diff --git a/app/models/ticket_purchase.rb b/app/models/ticket_purchase.rb index 7df0dee7..793f6926 100644 --- a/app/models/ticket_purchase.rb +++ b/app/models/ticket_purchase.rb @@ -40,18 +40,11 @@ class TicketPurchase < ActiveRecord::Base def self.purchase_ticket(conference, quantity, ticket, user) if quantity > 0 - if ticket.price_cents.zero? - purchase = new(ticket_id: ticket.id, - conference_id: conference.id, - user_id: user.id, - quantity: quantity, - paid: true) - else - purchase = new(ticket_id: ticket.id, - conference_id: conference.id, - user_id: user.id, - quantity: quantity) - end + purchase = new(ticket_id: ticket.id, + conference_id: conference.id, + user_id: user.id, + quantity: quantity, + paid: ticket.price_cents.zero?) end purchase end diff --git a/spec/models/conference_spec.rb b/spec/models/conference_spec.rb index ad0720ad..e16373bd 100755 --- a/spec/models/conference_spec.rb +++ b/spec/models/conference_spec.rb @@ -1585,11 +1585,12 @@ describe Conference do end describe 'after_create' do - let!(:conference) { create(:conference) } + let(:conference) { Conference.new(title: 'ABC', short_title: 'XYZ', start_date: Date.today, end_date: Date.today + 10, timezone: 'GMT') } - it 'creates free tickets' do + it 'calls back to create free ticket' do + conference.save + conference.run_callbacks :create free_ticket = conference.tickets.first - expect(free_ticket).not_to be_nil expect(free_ticket.price_cents).to eq(0) end end diff --git a/spec/models/ticket_purchase_spec.rb b/spec/models/ticket_purchase_spec.rb index a31d5291..0bb33f8e 100644 --- a/spec/models/ticket_purchase_spec.rb +++ b/spec/models/ticket_purchase_spec.rb @@ -41,7 +41,7 @@ describe TicketPurchase do let!(:participant) { create(:user) } let!(:ticket_1) { create(:ticket) } let!(:ticket_2) { create(:ticket) } - let!(:free_ticket) { create(:ticket) } + let!(:free_ticket) { create(:ticket, price_cents: 0) } let!(:conference) { create(:conference, tickets: [ticket_1, ticket_2, free_ticket]) } it 'creates purchase to free ticket' do