diff options
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r-- | spec/models/user_spec.rb | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 3b2859b..529c3b9 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -70,7 +70,7 @@ describe User do end end - it "should allow recruiter to change user role" do + it "should allow recruiter to promote recruits to mentors" do recruit = Factory(:recruit) recruit.role = :mentor for user in [Factory(:recruiter), Factory(:administrator)] @@ -79,6 +79,15 @@ describe User do end end + it "should allow recruiter to demote mentors to recruits" do + recruit = Factory(:mentor) + recruit.role = :recruit + for user in [Factory(:recruiter), Factory(:administrator)] + recruit.should be_updatable_by(user) + recruit.should be_editable_by(user, :role) + end + end + it "should return proper all_questions" do r = recruit_with_answered_and_unanswered_questions @@ -203,7 +212,7 @@ describe User do user.nick = "short" user.should_not be_valid - user.nick = "short" + user.nick = "invalid" user.should_not be_valid silence_warnings { APP_CONFIG = JSON.load(old_config) } # restore config @@ -310,8 +319,7 @@ describe User do recruit.answered_all_multi_choice_questions?.should be_true q2 = Factory(:question, :question_group => Factory(:question_group)) - Factory(:question_content_multiple_choice, - :question => q2) + Factory(:question_content_multiple_choice, :question => q2) recruit.answered_all_multi_choice_questions?.should be_true Factory(:user_question_group, @@ -322,4 +330,24 @@ describe User do Factory(:multiple_choice_answer, :question => q2, :owner => recruit) recruit.answered_all_multi_choice_questions?.should be_true end + + it "shold return proper progress" do + recruit = Factory(:recruit) + recruit.progress.should == "Answered 0 of 0 questions." + + q1 = Factory(:question) + Factory(:user_category, :user => recruit, + :question_category => q1.question_category) + recruit.progress.should == "Answered 0 of 1 questions." + + Factory(:answer, :owner => recruit, :question => q1) + recruit.progress.should == "Answered 1 of 1 questions." + + q2 = Factory(:question, :question_group => Factory(:question_group)) + Factory(:user_question_group, :question => q2, :user => recruit) + recruit.progress.should == "Answered 1 of 2 questions." + + Factory(:answer, :owner => recruit, :question => q2) + recruit.progress.should == "Answered 2 of 2 questions." + end end |