scinote-web/test/models/comment_test.rb

60 lines
1.7 KiB
Ruby

require 'test_helper'
class CommentTest < ActiveSupport::TestCase
def setup
@valid = Comment.new(
message: "test",
user: users(:steve),
)
ResultComment.new(
result: results(:one),
comment: @valid
)
end
should validate_presence_of(:message)
should validate_length_of(:message).is_at_most(Constants::TEXT_MAX_LENGTH)
test "should validate" do
assert @valid.valid?
end
test "should not validate with empty user_id" do
comment = Comment.new(message: "Message")
assert_not comment.valid?, "Comment was created with empty user_id."
end
test "should not validate with non existent user" do
comment = Comment.new(message: "comment", user_id: 123123)
assert_not comment.valid?, "Comment was created with user who doesn't exist."
end
test "should not validate with more than one assigned object" do
StepComment.new(
step: steps(:step1),
comment: @valid
)
ResultComment.new(
result: results(:one),
comment: @valid
)
assert_not @valid.valid?, "Comment was valid with more than one assigned object."
end
test "should not validate with no assigned object" do
skip # Omit due to GUI problems (see comment.rb)
@valid.step_comment = nil
@valid.my_module_comment = nil
@valid.result_comment = nil
@valid.sample_comment = nil
@valid.project_comment = nil
assert_not @valid.valid?, "Comment was valid despite having no assigned object."
end
test "should have association comment -> user" do
user = users(:jlaw)
comment = Comment.create(message: "comment", user: user)
assert_equal user, Comment.find(comment.id).user
end
end