added user feedback test
This commit is contained in:
@@ -1,5 +1,14 @@
|
|||||||
class UserFeedback < ActiveRecord::Base
|
class UserFeedback < ActiveRecord::Base
|
||||||
set_table_name "user_feedback"
|
set_table_name "user_feedback"
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
|
belongs_to :creator, :class_name => "User"
|
||||||
attr_accessible :body, :user_id, :is_positive
|
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
|
end
|
||||||
|
|||||||
6
test/factories/user_feedback.rb
Normal file
6
test/factories/user_feedback.rb
Normal 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
|
||||||
@@ -1,8 +1,29 @@
|
|||||||
require 'test_helper'
|
require File.dirname(__FILE__) + '/../test_helper'
|
||||||
|
|
||||||
class UserFeedbackTest < ActiveSupport::TestCase
|
class UserFeedbackTest < ActiveSupport::TestCase
|
||||||
# Replace this with your real tests.
|
context "A user's feedback" do
|
||||||
test "the truth" do
|
should "should not validate if the creator is not privileged" do
|
||||||
assert true
|
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
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user