[#2817] allowed 0 as RelationOptions.MinSelect value

This commit is contained in:
Gani Georgiev
2023-06-30 18:12:53 +03:00
parent 2cb642bbf7
commit 7297f55ca4
3 changed files with 55 additions and 1 deletions
+1 -1
View File
@@ -653,7 +653,7 @@ func (o RelationOptions) Validate() error {
return validation.ValidateStruct(&o,
validation.Field(&o.CollectionId, validation.Required),
validation.Field(&o.MinSelect, validation.NilOrNotEmpty, validation.Min(1)),
validation.Field(&o.MinSelect, validation.Min(0)),
validation.Field(&o.MaxSelect, validation.NilOrNotEmpty, validation.Min(minVal)),
)
}
+52
View File
@@ -2112,6 +2112,22 @@ func TestRelationOptionsValidate(t *testing.T) {
},
[]string{"collectionId"},
},
{
"MinSelect < 0",
schema.RelationOptions{
CollectionId: "abc",
MinSelect: types.Pointer(-1),
},
[]string{"minSelect"},
},
{
"MinSelect >= 0",
schema.RelationOptions{
CollectionId: "abc",
MinSelect: types.Pointer(0),
},
[]string{},
},
{
"MaxSelect <= 0",
schema.RelationOptions{
@@ -2128,6 +2144,42 @@ func TestRelationOptionsValidate(t *testing.T) {
},
[]string{},
},
{
"MinSelect < MaxSelect",
schema.RelationOptions{
CollectionId: "abc",
MinSelect: nil,
MaxSelect: types.Pointer(1),
},
[]string{},
},
{
"MinSelect = MaxSelect (non-zero)",
schema.RelationOptions{
CollectionId: "abc",
MinSelect: types.Pointer(1),
MaxSelect: types.Pointer(1),
},
[]string{},
},
{
"MinSelect = MaxSelect (both zero)",
schema.RelationOptions{
CollectionId: "abc",
MinSelect: types.Pointer(0),
MaxSelect: types.Pointer(0),
},
[]string{"maxSelect"},
},
{
"MinSelect > MaxSelect",
schema.RelationOptions{
CollectionId: "abc",
MinSelect: types.Pointer(2),
MaxSelect: types.Pointer(1),
},
[]string{"maxSelect"},
},
}
checkFieldOptionsScenarios(t, scenarios)