forked from e621ng/e621ng
added user feedback test
This commit is contained in:
parent
2f907c67b5
commit
1a7197807a
@ -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
|
||||
|
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
|
||||
# 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
|
||||
|
Loading…
Reference in New Issue
Block a user