From 1a31e9a691561c0f0416f846d21547cf04935901 Mon Sep 17 00:00:00 2001 From: Nicolas Moreau Date: Fri, 24 Jan 2025 12:12:34 +0100 Subject: [PATCH 1/6] fix: do not override view default sorting ordrer --- packages/agent/src/utils/query-string.ts | 4 ++-- packages/agent/test/utils/query-string.test.ts | 7 ++----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/agent/src/utils/query-string.ts b/packages/agent/src/utils/query-string.ts index 3c6e3a9c8e..c2b2fc5edf 100644 --- a/packages/agent/src/utils/query-string.ts +++ b/packages/agent/src/utils/query-string.ts @@ -197,9 +197,9 @@ export default class QueryStringParser { const sortString = body?.data?.attributes?.all_records_subset_query?.sort?.toString() ?? query.sort?.toString(); - try { - if (!sortString) return SortFactory.byPrimaryKeys(collection); + if (!sortString) return new Sort(); + try { const sort = new Sort( ...sortString.split(',').map((sortChunk: string) => ({ field: sortChunk.replace(/^-/, '').replace('.', ':'), diff --git a/packages/agent/test/utils/query-string.test.ts b/packages/agent/test/utils/query-string.test.ts index d3b7f5d699..b88cf21e56 100644 --- a/packages/agent/test/utils/query-string.test.ts +++ b/packages/agent/test/utils/query-string.test.ts @@ -545,7 +545,7 @@ describe('QueryStringParser', () => { expect(sort).toEqual([]); }); - test('should sort by pk ascending when not sort is given', () => { + test('should not sort when not sort is given', () => { const collectionWithSortablePks = factories.collection.build({ name: 'books', schema: factories.collectionSchema.build({ @@ -564,10 +564,7 @@ describe('QueryStringParser', () => { const sort = QueryStringParser.parseSort(collectionWithSortablePks, context); - expect(sort).toEqual([ - { field: 'id', ascending: true }, - { field: 'secondId', ascending: true }, - ]); + expect(sort).toEqual([]); }); test('should sort by the request field and order when given', () => { From 8cf3c9dd30bddb9d8502ddbf16733256bba69b6c Mon Sep 17 00:00:00 2001 From: Nicolas Moreau Date: Fri, 24 Jan 2025 12:13:35 +0100 Subject: [PATCH 2/6] chore: fix lint error --- packages/agent/src/utils/query-string.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/agent/src/utils/query-string.ts b/packages/agent/src/utils/query-string.ts index c2b2fc5edf..0e476a2611 100644 --- a/packages/agent/src/utils/query-string.ts +++ b/packages/agent/src/utils/query-string.ts @@ -10,7 +10,6 @@ import { ProjectionValidator, SchemaUtils, Sort, - SortFactory, SortValidator, UnprocessableError, ValidationError, From 4f5e1e679276bb8f671cc80d7d5ddc8d4b37f174 Mon Sep 17 00:00:00 2001 From: Nicolas Moreau Date: Fri, 24 Jan 2025 12:52:39 +0100 Subject: [PATCH 3/6] test: fix tests --- packages/agent/test/routes/access/list-related.test.ts | 4 ++-- packages/agent/test/routes/access/list.test.ts | 4 ++-- packages/agent/test/utils/context-filter-factory.test.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/agent/test/routes/access/list-related.test.ts b/packages/agent/test/routes/access/list-related.test.ts index 4199151be7..c9278562ef 100644 --- a/packages/agent/test/routes/access/list-related.test.ts +++ b/packages/agent/test/routes/access/list-related.test.ts @@ -113,7 +113,7 @@ describe('ListRelatedRoute', () => { search: 'aName', searchExtended: false, page: new Page(0, 15), - sort: new Sort({ field: 'id', ascending: true }), + sort: new Sort(), segment: 'a-valid-segment', liveQuerySegment: expect.toBeNil(), conditionTree: new ConditionTreeLeaf( @@ -224,7 +224,7 @@ describe('ListRelatedRoute', () => { search: 'aName', searchExtended: false, page: new Page(0, 15), - sort: new Sort({ field: 'id', ascending: true }), + sort: new Sort(), segment: 'a-valid-segment', liveQuerySegment: expect.toBeNil(), conditionTree: ConditionTreeFactory.fromPlainObject({ diff --git a/packages/agent/test/routes/access/list.test.ts b/packages/agent/test/routes/access/list.test.ts index 5049c084c2..cc39ba4a07 100644 --- a/packages/agent/test/routes/access/list.test.ts +++ b/packages/agent/test/routes/access/list.test.ts @@ -63,7 +63,7 @@ describe('ListRoute', () => { segment: expect.toBeNil(), liveQuerySegment: expect.toBeNil(), page: { limit: 15, skip: 0 }, - sort: [{ ascending: true, field: 'id' }], + sort: [], }, new Projection('id'), ); @@ -136,7 +136,7 @@ describe('ListRoute', () => { segment: expect.toBeNil(), liveQuerySegment: expect.toBeNil(), page: { limit: 15, skip: 0 }, - sort: [{ ascending: true, field: 'id' }], + sort: [], }, new Projection('id'), ); diff --git a/packages/agent/test/utils/context-filter-factory.test.ts b/packages/agent/test/utils/context-filter-factory.test.ts index cf52814d4c..3e929f21fc 100644 --- a/packages/agent/test/utils/context-filter-factory.test.ts +++ b/packages/agent/test/utils/context-filter-factory.test.ts @@ -64,7 +64,7 @@ describe('FilterFactory', () => { new ConditionTreeLeaf('id', 'Equal', '123e4567-e89b-12d3-a456-222222222222'), ]), search: 'searched argument', - sort: new Sort({ field: 'id', ascending: true }), + sort: new Sort(), page: new Page(20, 10), searchExtended: true, segment: 'a-valid-segment', @@ -84,7 +84,7 @@ describe('FilterFactory', () => { new PaginatedFilter({ conditionTree: null, search: 'searched argument', - sort: new Sort({ field: 'id', ascending: true }), + sort: new Sort(), page: new Page(20, 10), searchExtended: true, segment: 'a-valid-segment', From 35ab78a8f39a45fc606c0606f5d8d4b01e338d20 Mon Sep 17 00:00:00 2001 From: Nicolas Moreau Date: Fri, 24 Jan 2025 14:23:59 +0100 Subject: [PATCH 4/6] chore: force ci with empty commit From 75d92f4ccb9465f8d3912613e4d960c3e0fdcb50 Mon Sep 17 00:00:00 2001 From: Nicolas Moreau Date: Fri, 24 Jan 2025 14:24:23 +0100 Subject: [PATCH 5/6] chore: force ci with empty commit From 585f5334cb4e0a940403a7d3f60d9966ed2e4e86 Mon Sep 17 00:00:00 2001 From: Nicolas Moreau Date: Fri, 24 Jan 2025 16:41:56 +0100 Subject: [PATCH 6/6] chore(scripts): shortcut to for starting example package --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index f29cf11235..49c7cd2405 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "scripts": { "bootstrap": "lerna bootstrap", "build:watch": "lerna run --parallel --no-bail --no-prefix build:watch", + "example:watch": "yarn nx run \"example\":start:watch", "build": "lerna run build", "clean": "lerna run clean && rm -rf coverage api-reference/", "docs": "typedoc",