diff --git a/lib/theme_settings_validator.rb b/lib/theme_settings_validator.rb index 03385884376..db6725e54dd 100644 --- a/lib/theme_settings_validator.rb +++ b/lib/theme_settings_validator.rb @@ -45,7 +45,7 @@ class ThemeSettingsValidator ) when types[:string] validate_value_in_range!( - value.length, + value.to_s.length, min: opts[:min], max: opts[:max], errors:, diff --git a/spec/fixtures/theme_settings/valid_settings.yaml b/spec/fixtures/theme_settings/valid_settings.yaml index 4c3e3b480d4..6a39e85924e 100644 --- a/spec/fixtures/theme_settings/valid_settings.yaml +++ b/spec/fixtures/theme_settings/valid_settings.yaml @@ -14,6 +14,10 @@ string_setting_03: default: "string value" textarea: true +string_setting_04: + default: 0 + type: string + integer_setting: 51 integer_setting_02: diff --git a/spec/lib/theme_settings_validator_spec.rb b/spec/lib/theme_settings_validator_spec.rb new file mode 100644 index 00000000000..a47d423fc43 --- /dev/null +++ b/spec/lib/theme_settings_validator_spec.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +RSpec.describe ThemeSettingsValidator do + describe ".validate_value" do + it "does not throw an error when an integer value is given with type `string`" do + errors = described_class.validate_value(1, ThemeSetting.types[:string], {}) + + expect(errors).to eq([]) + end + end +end