discourse/spec/lib/theme_settings_validator_spec.rb
Alan Guo Xiang Tan 18ca3d373d
FIX: ThemeSettingsValidator.validate_value returning wrong error (#25901)
Why this change?

Before this change, the error messages returned when validating theme
settings of typed objects was an array of array instead of just an
array.
2024-02-27 15:46:12 +08:00

37 lines
993 B
Ruby

# 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
it "returns the right error messages when value is invalid for type `objects`" do
errors =
described_class.validate_value(
[{ name: "something" }],
ThemeSetting.types[:objects],
{
schema: {
name: "test",
properties: {
name: {
type: "string",
validations: {
max_length: 1,
},
},
},
},
},
)
expect(errors).to contain_exactly(
"The property at JSON Pointer '/0/name' must be at most 1 characters long.",
)
end
end
end