71 lines
2.5 KiB
Ruby
71 lines
2.5 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe LessonSession do
|
|
|
|
let(:user) {FactoryGirl.create(:user, stored_credit_card: true, remaining_free_lessons: 1, remaining_test_drives: 1)}
|
|
let(:teacher) {FactoryGirl.create(:teacher_user)}
|
|
let(:slot1) { FactoryGirl.build(:lesson_booking_slot_single) }
|
|
let(:slot2) { FactoryGirl.build(:lesson_booking_slot_single) }
|
|
|
|
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}
|
|
let(:lesson_session) {lesson_booking.lesson_sessions[0]}
|
|
|
|
after{Timecop.return}
|
|
describe "accept" do
|
|
it "can accept" do
|
|
|
|
end
|
|
end
|
|
|
|
describe "upcoming_sessions_reminder" do
|
|
it "succeeds" do
|
|
lesson = normal_lesson(user, teacher)
|
|
UserMailer.deliveries.clear
|
|
LessonSession.upcoming_sessions_reminder
|
|
#UserMailer.deliveries.count.should eql 2
|
|
lesson.touch
|
|
lesson.sent_starting_notice.should be_false
|
|
lesson.is_approved?.should be_true
|
|
lesson.music_session.scheduled_start = 15.minutes.from_now
|
|
lesson.music_session.save!
|
|
LessonSession.upcoming_sessions_reminder
|
|
UserMailer.deliveries.count.should eql 2
|
|
UserMailer.deliveries.clear
|
|
lesson.reload
|
|
lesson.sent_starting_notice.should be_true
|
|
LessonSession.upcoming_sessions_reminder
|
|
UserMailer.deliveries.count.should eql 0
|
|
end
|
|
end
|
|
|
|
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
|