validates input_options based on input type
This commit is contained in:
49
test/validators/input_options_presence_validator_test.rb
Normal file
49
test/validators/input_options_presence_validator_test.rb
Normal file
@ -0,0 +1,49 @@
|
||||
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
|
Reference in New Issue
Block a user