From 8341f989405b3d3617fffe210793e390fa5b5d3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Sat, 18 Apr 2026 22:32:54 +0200 Subject: [PATCH] Simplify OwnerEntityColumn to use EntityRefLink directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the catalog API lookup and manual title resolution. The EntityRefLink already uses the entity presentation API to resolve display names, so the component only needs the entity ref string. This removes unused imports of useApi, useAsync, catalogApiRef, parseEntityRef, and UserEntity. Signed-off-by: Fredrik Adelöw Made-with: Cursor --- .../columns/OwnerEntityColumn.test.tsx | 62 +++++++------------ .../columns/OwnerEntityColumn.tsx | 30 +-------- 2 files changed, 24 insertions(+), 68 deletions(-) diff --git a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.test.tsx b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.test.tsx index 2cc069af5d..5720bfd5b4 100644 --- a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.test.tsx +++ b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.test.tsx @@ -14,48 +14,15 @@ * limitations under the License. */ -import { Entity } from '@backstage/catalog-model'; -import { - renderInTestApp, - TestApiProvider, - mockApis, -} from '@backstage/test-utils'; -import { catalogApiRef, entityRouteRef } from '@backstage/plugin-catalog-react'; -import { catalogApiMock } from '@backstage/plugin-catalog-react/testUtils'; +import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; +import { entityRouteRef } from '@backstage/plugin-catalog-react'; import { OwnerEntityColumn } from './OwnerEntityColumn'; -import { identityApiRef } from '@backstage/core-plugin-api'; describe('', () => { - const catalogApi = catalogApiMock.mock(); - const identityApi = mockApis.identity(); - - it('should render the column with the user', async () => { - const props = { - entityRef: 'user:default/foo', - }; - - const entity: Entity = { - apiVersion: 'v1', - kind: 'User', - metadata: { - name: 'test', - }, - spec: { - profile: { - displayName: 'BackUser', - }, - }, - }; - catalogApi.getEntityByRef.mockResolvedValue(entity); - - const { getByText, getByRole } = await renderInTestApp( - - + it('should render a link to the user entity', async () => { + const { getByRole } = await renderInTestApp( + + , { mountedRoutes: { @@ -68,7 +35,20 @@ describe('', () => { 'href', '/catalog/default/user/foo', ); - const text = getByText('BackUser'); - expect(text).toBeDefined(); + }); + + it('should render Unknown when entityRef is missing', async () => { + const { getByText } = await renderInTestApp( + + + , + { + mountedRoutes: { + '/catalog/:namespace/:kind/:name': entityRouteRef, + }, + }, + ); + + expect(getByText('Unknown')).toBeInTheDocument(); }); }); diff --git a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx index a6d53d2ea1..6c1ca0bde9 100644 --- a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx +++ b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx @@ -13,37 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { useApi } from '@backstage/core-plugin-api'; - -import useAsync from 'react-use/esm/useAsync'; - -import { catalogApiRef, EntityRefLink } from '@backstage/plugin-catalog-react'; -import { parseEntityRef, UserEntity } from '@backstage/catalog-model'; +import { EntityRefLink } from '@backstage/plugin-catalog-react'; import Typography from '@material-ui/core/Typography'; export const OwnerEntityColumn = ({ entityRef }: { entityRef?: string }) => { - const catalogApi = useApi(catalogApiRef); - - const { value, loading, error } = useAsync( - () => catalogApi.getEntityByRef(entityRef || ''), - [catalogApi, entityRef], - ); - if (!entityRef) { - return Unknown; + return Unknown; } - if (loading || error) { - return null; - } - - return ( - - ); + return ; };