This commit is contained in:
Rishabh Saxena 2016-03-14 12:22:27 +00:00
commit eedb44a228
2 changed files with 21 additions and 0 deletions

View file

@ -29,6 +29,7 @@ class Registration < ActiveRecord::Base
validate :registration_limit_not_exceed, on: :create validate :registration_limit_not_exceed, on: :create
after_create :set_week, :subscribe_to_conference, :send_registration_mail after_create :set_week, :subscribe_to_conference, :send_registration_mail
after_destroy :destroy_purchased_tickets
def week def week
created_at.strftime('%W').to_i created_at.strftime('%W').to_i
@ -36,6 +37,13 @@ class Registration < ActiveRecord::Base
private private
def destroy_purchased_tickets
ticket_purchased = TicketPurchase.where(conference_id: conference_id)
unless ticket_purchased.empty?
ticket_purchased.destroy_all
end
end
def subscribe_to_conference def subscribe_to_conference
Subscription.create(conference_id: conference.id, user_id: user.id) Subscription.create(conference_id: conference.id, user_id: user.id)
end end

View file

@ -22,4 +22,17 @@ describe 'Registration' do
end end
end end
end end
describe 'after destroy' do
it 'destroys purchased tickets' do
conference = build(:conference)
registration1 = build(:registration, conference: conference)
registration1.save
ticket_purchase = build(:ticket_purchase, conference: conference)
ticket_purchase.save
expect(conference.ticket_purchases.size).to be 1
registration1.destroy
expect(conference.registrations.size).to be 0
expect(conference.ticket_purchases.size).to be 0
end
end
end end