jam-cloud/web/spec/features/school_teacher_register_spe...

110 lines
3.4 KiB
Ruby

require 'spec_helper'
describe "Teacher Landing", :js => true, :type => :feature, :capybara_feature => true do
subject { page }
before(:all) do
ShoppingCart.delete_all
JamTrackRight.delete_all
JamTrack.delete_all
JamTrackTrack.delete_all
JamTrackLicensor.delete_all
SchoolInvitation.delete_all
School.delete_all
end
let(:user) { FactoryGirl.create(:user, country: 'US') }
let(:school) {FactoryGirl.create(:school, name: 'Hot Dog')}
it "logged out and no invitation" do
visit "/school/#{school.id}/teacher"
find('.header-content h1', 'REGISTER AS TEACHER')
find('.header-content h2', "with #{school.name}")
find('button.cta-button', text: 'SIGN UP').trigger(:click)
# should fail because we haven't filled out email/password/terms
find('.register-area .errors', text: "Email can't be blank")
fill_in "email", with: 'school_teacher_123@jamkazam.com'
fill_in "password", with: 'jam123'
find('.register-area ins', visible: false).trigger(:click)
find('button.cta-button', text: 'SIGN UP').trigger(:click)
#find('h2', text: 'my lessons')
find('#type-label', text: 'musician')
teacher = User.find_by_email('school_teacher_123@jamkazam.com')
teacher.is_a_student.should be false
teacher.is_a_teacher.should be true
teacher.musician.should be true
teacher.teacher.should_not be_nil
teacher.school.should be_nil
teacher.teacher.school.should eql school
find('#user-profile #username', text: teacher.name)
end
it "logged out and has invitation" do
school_invitation = FactoryGirl.create(:school_invitation, school: school, accepted: false, as_teacher: true)
visit "/school/#{school.id}/teacher?invitation_code=#{school_invitation.invitation_code}"
find('.header-content h1', 'REGISTER AS A TEACHER')
find('.header-content h2', "with #{school.name}")
find('button.cta-button', text: 'SIGN UP').trigger(:click)
# should fail because we haven't filled out email/password/terms
find('.register-area .errors', text: "Password is too short (minimum is 6 characters)")
#fill_in "email", with: 'school_student_124@jamkazam.com'
fill_in "password", with: 'jam123'
find('.register-area ins', visible: false).trigger(:click)
find('button.cta-button', text: 'SIGN UP').trigger(:click)
#find('h2', text: 'my lessons')
find('#type-label', text: 'musician')
teacher = User.find_by_email(school_invitation.email)
teacher.is_a_student.should be false
teacher.is_a_teacher.should be true
teacher.musician.should be true
teacher.teacher.should_not be_nil
teacher.school.should be_nil
teacher.teacher.school.should eql school
school_invitation.reload
school_invitation.accepted.should be_true
find('#user-profile #username', text: teacher.name)
end
it "logged in" do
school.touch
fast_signin(user,"/school/#{school.id}/teacher")
find('.header-content h1', 'REGISTER AS A TEACHER')
find('.header-content h2', "with #{school.name}")
find('button.cta-button', text: 'GO TO JAMKAZAM').trigger(:click)
# this should show on the /client#/home page (WILL CHANGE)
#find('h2', text: 'my lessons')
find('#type-label', text: 'musician')
find('#user-profile #username', text: user.name)
user.reload
#user.is_a_student.should be true
#user.is_a_teacher.should be false
#user.musician.should be true
end
end