From 2b7924b1d12d7ee188987e13e858ade721ee6aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 4 Nov 2025 10:18:19 +0100 Subject: [PATCH 1/2] Apply default order to templates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/lemon-spies-sleep.md | 5 +++++ plugins/catalog-react/src/hooks/useEntityListProvider.tsx | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 .changeset/lemon-spies-sleep.md diff --git a/.changeset/lemon-spies-sleep.md b/.changeset/lemon-spies-sleep.md new file mode 100644 index 0000000000..15ec451f62 --- /dev/null +++ b/.changeset/lemon-spies-sleep.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Apply default ordering of templates diff --git a/plugins/catalog-react/src/hooks/useEntityListProvider.tsx b/plugins/catalog-react/src/hooks/useEntityListProvider.tsx index f424dafb56..319740e70e 100644 --- a/plugins/catalog-react/src/hooks/useEntityListProvider.tsx +++ b/plugins/catalog-react/src/hooks/useEntityListProvider.tsx @@ -298,6 +298,7 @@ export const EntityListProvider = ( } else { const entityFilter = reduceEntityFilters(compacted); const backendFilter = reduceBackendCatalogFilters(compacted); + const { orderFields } = reduceCatalogFilters(compacted); const previousBackendFilter = reduceBackendCatalogFilters( compact(Object.values(outputState.appliedFilters)), ); @@ -310,6 +311,7 @@ export const EntityListProvider = ( // fields + table columns const response = await catalogApi.getEntities({ filter: backendFilter, + order: orderFields, }); const entities = response.items.filter(entityFilter); return { From 13507b42ddfdade3be798c77eb5ab8e3ffd765a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 4 Nov 2025 11:13:53 +0100 Subject: [PATCH 2/2] fix tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../catalog-react/src/hooks/useEntityListProvider.test.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx index ef3c83315a..8ef1707bb1 100644 --- a/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx +++ b/plugins/catalog-react/src/hooks/useEntityListProvider.test.tsx @@ -146,6 +146,7 @@ describe('', () => { expect(mockCatalogApi.getEntities).toHaveBeenCalledTimes(1); expect(mockCatalogApi.getEntities).toHaveBeenCalledWith({ filter: { kind: 'component' }, + order: [{ field: 'metadata.name', order: 'asc' }], }); }); @@ -190,6 +191,7 @@ describe('', () => { expect(mockCatalogApi.getEntities).toHaveBeenCalledTimes(1); expect(mockCatalogApi.getEntities).toHaveBeenCalledWith({ filter: { kind: 'component' }, + order: [{ field: 'metadata.name', order: 'asc' }], }); }); }); @@ -264,6 +266,7 @@ describe('', () => { await waitFor(() => { expect(mockCatalogApi.getEntities).toHaveBeenNthCalledWith(2, { filter: { kind: 'api', 'spec.type': ['service'] }, + order: [{ field: 'metadata.name', order: 'asc' }], }); }); }); @@ -320,6 +323,7 @@ describe('', () => { expect(mockCatalogApi.getEntities).toHaveBeenCalledWith({ filter: { kind: 'user' }, + order: [{ field: 'metadata.name', order: 'asc' }], }); }); @@ -341,6 +345,7 @@ describe('', () => { expect(mockCatalogApi.getEntities).toHaveBeenCalledWith({ filter: { kind: 'group' }, + order: [{ field: 'metadata.name', order: 'asc' }], }); }); @@ -370,6 +375,7 @@ describe('', () => { await waitFor(() => { expect(mockCatalogApi.getEntities).toHaveBeenNthCalledWith(2, { filter: { kind: 'api' }, + order: [{ field: 'metadata.name', order: 'asc' }], }); }); @@ -384,6 +390,7 @@ describe('', () => { await waitFor(() => { expect(mockCatalogApi.getEntities).toHaveBeenNthCalledWith(3, { filter: { kind: 'system' }, + order: [{ field: 'metadata.name', order: 'asc' }], }); });