diff --git a/packages/server/src/api/routes/tests/search.spec.ts b/packages/server/src/api/routes/tests/search.spec.ts index 51349e7647..d6e764192d 100644 --- a/packages/server/src/api/routes/tests/search.spec.ts +++ b/packages/server/src/api/routes/tests/search.spec.ts @@ -94,7 +94,18 @@ describe.each([ private async performSearch(): Promise { if (isInMemory) { - return dataFilters.runQuery(rows, this.query.query) + let result = dataFilters.runQuery(rows, this.query.query) + if (this.query.sort) { + result = dataFilters.sort( + result, + this.query.sort, + this.query.sortOrder || SortOrder.ASCENDING + ) + } + if (this.query.limit) { + result = dataFilters.limit(result, this.query.limit.toString()) + } + return result } else { return ( await config.api.row.search(table._id!, { diff --git a/packages/shared-core/src/filters.ts b/packages/shared-core/src/filters.ts index f714f1cef6..862c2ea9bd 100644 --- a/packages/shared-core/src/filters.ts +++ b/packages/shared-core/src/filters.ts @@ -7,9 +7,9 @@ import { SearchFilters, SearchQueryFields, SearchFilterOperator, - SortDirection, SortType, FieldConstraints, + SortOrder, } from "@budibase/types" import dayjs from "dayjs" import { OperatorOptions, SqlNumberTypeRangeMap } from "./constants" @@ -454,7 +454,7 @@ export const runQuery = (docs: any[], query?: SearchFilters) => { export const sort = ( docs: any[], sort: string, - sortOrder: SortDirection, + sortOrder: SortOrder, sortType = SortType.STRING ) => { if (!sort || !sortOrder || !sortType) {