added user feedback test

This commit is contained in:
albert 2010-02-19 18:04:43 -05:00
parent 2f907c67b5
commit 1a7197807a
3 changed files with 40 additions and 4 deletions

View File

@ -1,5 +1,14 @@
class UserFeedback < ActiveRecord::Base
set_table_name "user_feedback"
belongs_to :user
belongs_to :creator, :class_name => "User"
attr_accessible :body, :user_id, :is_positive
validates_presence_of :user_id, :creator_id, :body
validate :creator_is_privileged
def creator_is_privileged
if !creator.is_privileged?
errors[:creator] << "must be privileged"
end
end
end

View File

@ -0,0 +1,6 @@
Factory.define(:user_feedback) do |f|
f.user {|x| x.association(:user)}
f.creator {|x| x.association(:user)}
f.is_positive true
f.body {Faker::Lorem.words}
end

View File

@ -1,8 +1,29 @@
require 'test_helper'
require File.dirname(__FILE__) + '/../test_helper'
class UserFeedbackTest < ActiveSupport::TestCase
# Replace this with your real tests.
test "the truth" do
assert true
context "A user's feedback" do
should "should not validate if the creator is not privileged" do
user = Factory.create(:user)
admin = Factory.create(:admin_user)
moderator = Factory.create(:moderator_user)
janitor = Factory.create(:janitor_user)
contributor = Factory.create(:contributor_user)
privileged = Factory.create(:privileged_user)
member = Factory.create(:user)
feedback = Factory.create(:user_feedback, :user => user, :creator => admin)
assert(feedback.errors.empty?)
feedback = Factory.create(:user_feedback, :user => user, :creator => moderator)
assert(feedback.errors.empty?)
feedback = Factory.create(:user_feedback, :user => user, :creator => janitor)
assert(feedback.errors.empty?)
feedback = Factory.create(:user_feedback, :user => user, :creator => contributor)
assert(feedback.errors.empty?)
feedback = Factory.create(:user_feedback, :user => user, :creator => privileged)
assert(feedback.errors.empty?)
feedback = Factory.build(:user_feedback, :user => user, :creator => member)
feedback.save
assert(feedback.errors.any?)
end
end
end