Guest User

Untitled

a guest
Jun 19th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. require 'spec_helper'
  2.  
  3. describe User do
  4. before(:each) do
  5. @attr = {
  6. :username => "kiba",
  7. :email => "hackerkiba@gmail.com",
  8. :password => "boo33",
  9. :password_confirmation => "boo33",
  10. :experience => 0
  11. }
  12. end
  13.  
  14. it "should create a new instance given valid attributes" do
  15. success = User.new(@attr)
  16. success.should be_valid
  17. end
  18.  
  19. it "should not create a new instance if name is not there" do
  20. noname = User.new(@attr.merge(:username => ""))
  21. noname.should_not be_valid
  22. end
  23.  
  24. it "should not create a new instance if experience is not there" do
  25. noexp = User.new(@attr.merge(:experience => ""))
  26. noexp.should_not be_valid
  27. end
  28.  
  29. it "should fail if experience is not numerical" do
  30. string = User.new(@attr.merge(:experience => "asdf"))
  31. string.should_not be_valid
  32. end
  33.  
  34. describe "quests association" do
  35. before(:each) do
  36. @user = User.create(@attr)
  37. @q2 = Factory(:quest,:user => @user, :deadline => Date.tomorrow)
  38. @q1 = Factory(:quest,:user => @user, :deadline => Date.yesterday)
  39. @attr = Factory(:quest)
  40. end
  41.  
  42. it "should have username and such" do
  43. @user.username.should == "kiba"
  44. end
  45.  
  46. it "should have a quests attribute" do
  47. @user.should respond_to(:quests)
  48. end
  49.  
  50. it "should have the quests in the right order" do
  51. @user.quests.should == [@q2,@q1]
  52. end
  53.  
  54. it "should destory associated quests" do
  55. @user.destroy()
  56. [@q1,@q2].each do |quest|
  57. Quest.find_by_id(quest.id).should be_nil
  58. end
  59. end
  60.  
  61. it "when completed should increase users experience" do
  62. @q1.complete()
  63. @q1.completed.should == true
  64. @user.quests[1].completed.should == true
  65. @user.calculate()
  66. @user.experience.should == 24
  67. end
  68. end
  69.  
  70. end
Add Comment
Please, Sign In to add comment