skill-assessment-app/test/validators/input_options_presence_validator_test.rb
2016-08-22 16:28:50 -05:00

50 lines
1.4 KiB
Ruby

require 'test_helper'
class InputOptionsPresenceValidatorTest < ActiveSupport::TestCase
test "should pass when inpute type not radio or checkbox" do
obj = InputOptionsValidatable.new
obj.input_type = "text"
assert obj.valid?
assert_equal 0, obj.errors.messages[:input_options].count
end
test "should fail when missing options for radio" do
obj = InputOptionsValidatable.new
obj.input_type = "radio"
obj.input_options = nil
obj.valid?
refute obj.errors.messages.empty?, 'needs an error message'
assert_match(/provide.*option/i, obj.errors.messages[:input_options].join)
end
test "should pass when provided options for radio" do
obj = InputOptionsValidatable.new
obj.input_type = "radio"
obj.input_options = ['one', 'two', nil]
assert obj.valid?
assert_equal 0, obj.errors.messages[:input_options].count
end
test "should fail when missing options for checkbox" do
obj = InputOptionsValidatable.new
obj.input_type = "checkbox"
obj.input_options = nil
obj.valid?
refute obj.errors.messages.empty?, 'needs an error message'
assert_match(/provide.*option/i, obj.errors.messages[:input_options].join)
end
test "should pass when provided options for checkbox" do
obj = InputOptionsValidatable.new
obj.input_type = "checkbox"
obj.input_options = ['one', 'two', nil]
assert obj.valid?
assert_equal 0, obj.errors.messages[:input_options].count
end
end