2016-04-06 02:23:15 +00:00
require 'spec_helper'
describe LessonSession do
2016-05-12 21:29:27 +00:00
let ( :user ) { FactoryGirl . create ( :user , stored_credit_card : true , remaining_free_lessons : 1 , remaining_test_drives : 1 ) }
2016-04-06 02:23:15 +00:00
let ( :teacher ) { FactoryGirl . create ( :teacher_user ) }
let ( :slot1 ) { FactoryGirl . build ( :lesson_booking_slot_single ) }
let ( :slot2 ) { FactoryGirl . build ( :lesson_booking_slot_single ) }
2016-04-21 14:23:29 +00:00
let ( :lesson_booking ) { b = LessonBooking . book_normal ( user , teacher , [ slot1 , slot2 ] , " Hey I've heard of you before. " , false , LessonBooking :: PAYMENT_STYLE_SINGLE , 60 ) ; b . card_presumed_ok = true ; b . save! ; b }
2016-04-06 02:23:15 +00:00
let ( :lesson_session ) { lesson_booking . lesson_sessions [ 0 ] }
describe " accept " do
it " can accept " do
end
end
2016-04-21 14:23:29 +00:00
describe " upcoming_sessions_reminder " do
it " succeeds " do
UserMailer . deliveries . clear
LessonSession . upcoming_sessions_reminder
lesson_session . touch
lesson_session . sent_starting_notice . should be_false
lesson_session . is_requested? . should be_true
lesson_session . music_session . scheduled_start = 15 . minutes . from_now
lesson_session . music_session . save!
LessonSession . upcoming_sessions_reminder
UserMailer . deliveries . count . should eql 2
UserMailer . deliveries . clear
lesson_session . reload
lesson_session . sent_starting_notice . should be_true
LessonSession . upcoming_sessions_reminder
UserMailer . deliveries . count . should eql 0
end
end
2016-04-06 02:23:15 +00:00
describe " index " do
it " finds single lesson as student " do
lesson_session . touch
lesson_session . music_session . creator . should eql lesson_session . lesson_booking . user
lesson_session . lesson_booking . teacher . should eql teacher
query = LessonSession . index ( user ) [ :query ]
query . length . should eq 1
# make sure some random nobody can see this lesson session
query = LessonSession . index ( FactoryGirl . create ( :user ) ) [ :query ]
query . length . should eq 0
end
it " finds single lesson as teacher " do
# just sanity check that the lesson_session Factory is doing what it should
lesson_session . music_session . creator . should eql lesson_session . lesson_booking . user
lesson_session . lesson_booking . teacher . should eql teacher
query = LessonSession . index ( teacher , { as_teacher : true } ) [ :query ]
query . length . should eq 1
# make sure some random nobody can see this lesson session
query = LessonSession . index ( FactoryGirl . create ( :user ) , { as_teacher : true } ) [ :query ]
query . length . should eq 0
end
end
end