mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-14 21:24:54 +08:00
60 lines
1.7 KiB
Ruby
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
|