mirror of
https://github.com/directus/directus.git
synced 2026-01-23 07:47:58 -05:00
Cast to number for joi between (#12666)
* Cast to number for joi between * Fix between range as inclusive * Update unit test
This commit is contained in:
@@ -365,7 +365,7 @@ describe(`generateJoi`, () => {
|
||||
it(`returns the correct schema for an _between number match`, () => {
|
||||
const mockFieldFilter = { field: { _between: [1, 3] } } as FieldFilter;
|
||||
const mockSchema = Joi.object({
|
||||
field: Joi.number().greater(1).less(3),
|
||||
field: Joi.number().min(1).max(3),
|
||||
})
|
||||
.unknown()
|
||||
.describe();
|
||||
@@ -375,7 +375,7 @@ describe(`generateJoi`, () => {
|
||||
it(`returns the correct schema for an _between date match`, () => {
|
||||
const mockFieldFilter = { field: { _between: [date, compareDate] } } as FieldFilter;
|
||||
const mockSchema = Joi.object({
|
||||
field: Joi.date().greater(date).less(compareDate),
|
||||
field: Joi.date().min(date).max(compareDate),
|
||||
})
|
||||
.unknown()
|
||||
.describe();
|
||||
|
||||
@@ -217,17 +217,17 @@ export function generateJoi(filter: FieldFilter, options?: JoiOptions): AnySchem
|
||||
if (operator === '_between') {
|
||||
if (compareValue.every((value: any) => Number.isSafeInteger(Number(value instanceof Date ? NaN : value)))) {
|
||||
const values = compareValue as [number, number];
|
||||
schema[key] = getNumberSchema().greater(values[0]).less(values[1]);
|
||||
schema[key] = getNumberSchema().min(Number(values[0])).max(Number(values[1]));
|
||||
} else {
|
||||
const values = compareValue as [string, string];
|
||||
schema[key] = getDateSchema().greater(values[0]).less(values[1]);
|
||||
schema[key] = getDateSchema().min(values[0]).max(values[1]);
|
||||
}
|
||||
}
|
||||
|
||||
if (operator === '_nbetween') {
|
||||
if (compareValue.every((value: any) => Number.isSafeInteger(Number(value instanceof Date ? NaN : value)))) {
|
||||
const values = compareValue as [number, number];
|
||||
schema[key] = getNumberSchema().less(values[0]).greater(values[1]);
|
||||
schema[key] = getNumberSchema().less(Number(values[0])).greater(Number(values[1]));
|
||||
} else {
|
||||
const values = compareValue as [string, string];
|
||||
schema[key] = getDateSchema().less(values[0]).greater(values[1]);
|
||||
|
||||
Reference in New Issue
Block a user