1
0

scenario_spec.rb 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. require 'spec_helper'
  2. describe Scenario do
  3. let(:new_instance) { users(:bob).scenarios.build(:name => "some scenario") }
  4. it_behaves_like HasGuid
  5. describe "defaults" do
  6. it "defaults the tag foreground color" do
  7. new_instance.tag_fg_color.should == '#ffffff'
  8. end
  9. it "defaults the tag background color" do
  10. new_instance.tag_bg_color.should == '#5bc0de'
  11. end
  12. end
  13. describe "validations" do
  14. before do
  15. new_instance.should be_valid
  16. end
  17. it "validates the presence of name" do
  18. new_instance.name = ''
  19. new_instance.should_not be_valid
  20. end
  21. it "validates the presence of user" do
  22. new_instance.user = nil
  23. new_instance.should_not be_valid
  24. end
  25. it "validates tag_fg_color is hex color" do
  26. new_instance.tag_fg_color = '#N07H3X'
  27. new_instance.should_not be_valid
  28. end
  29. it "validates tag_bg_color is hex color" do
  30. new_instance.tag_bg_color = '#N07H3X'
  31. new_instance.should_not be_valid
  32. end
  33. it "only allows Agents owned by user" do
  34. new_instance.agent_ids = [agents(:bob_website_agent).id]
  35. new_instance.should be_valid
  36. new_instance.agent_ids = [agents(:jane_website_agent).id]
  37. new_instance.should_not be_valid
  38. end
  39. end
  40. describe "counters" do
  41. it "maintains a counter cache on user" do
  42. lambda {
  43. new_instance.save!
  44. }.should change { users(:bob).reload.scenario_count }.by(1)
  45. lambda {
  46. new_instance.destroy
  47. }.should change { users(:bob).reload.scenario_count }.by(-1)
  48. end
  49. end
  50. end