Merge pull request #17509 from clanghout/master

feat: use entity.metadata.title for DomainCard
This commit is contained in:
Patrik Oldsberg
2023-05-04 15:25:37 +02:00
committed by GitHub
6 changed files with 70 additions and 2 deletions
@@ -17,6 +17,7 @@
import { DomainEntity } from '@backstage/catalog-model';
import { entityRouteRef } from '@backstage/plugin-catalog-react';
import { renderInTestApp } from '@backstage/test-utils';
import { screen } from '@testing-library/react';
import React from 'react';
import { DomainCard } from './DomainCard';
@@ -51,4 +52,33 @@ describe('<DomainCard />', () => {
'/catalog/default/domain/artists',
);
});
it('renders a domain card with custom title', async () => {
const entity: DomainEntity = {
apiVersion: 'backstage.io/v1alpha1',
kind: 'Domain',
metadata: {
name: 'artists',
title: 'my Custom Title',
},
spec: {
owner: 'guest',
},
};
const { getByText } = await renderInTestApp(
<DomainCard entity={entity} />,
{
mountedRoutes: {
'/catalog/:namespace/:kind/:name': entityRouteRef,
},
},
);
expect(getByText('Explore').parentElement).toHaveAttribute(
'href',
'/catalog/default/domain/artists',
);
expect(getByText('my Custom Title')).toBeInTheDocument();
expect(screen.queryByText('artists')).not.toBeInTheDocument();
});
});
@@ -53,7 +53,10 @@ export const DomainCard = (props: { entity: DomainEntity }) => {
return (
<Card>
<CardMedia>
<ItemCardHeader title={entity.metadata.name} subtitle={owner} />
<ItemCardHeader
title={entity.metadata.title ?? entity.metadata.name}
subtitle={owner}
/>
</CardMedia>
<CardContent>
{entity.metadata.tags?.length ? (
@@ -18,6 +18,7 @@ import { Entity } from '@backstage/catalog-model';
import { entityRouteRef } from '@backstage/plugin-catalog-react';
import { renderInTestApp } from '@backstage/test-utils';
import React from 'react';
import { screen } from '@testing-library/react';
import { EntityCard } from './EntityCard';
describe('<EntityCard />', () => {
@@ -51,4 +52,29 @@ describe('<EntityCard />', () => {
'/catalog/default/domain/artists',
);
});
it('renders an entity card with display title', async () => {
const entity: Entity = {
apiVersion: 'backstage.io/v1alpha1',
kind: 'Domain',
metadata: {
name: 'artists',
title: 'New Title',
},
spec: {
owner: 'guest',
},
};
const { getByText } = await renderInTestApp(
<EntityCard entity={entity} />,
{
mountedRoutes: {
'/catalog/:namespace/:kind/:name': entityRouteRef,
},
},
);
expect(getByText('New Title')).toBeInTheDocument();
expect(screen.queryByText('artists')).not.toBeInTheDocument();
});
});
@@ -53,7 +53,10 @@ export const EntityCard = (props: { entity: Entity }) => {
return (
<Card>
<CardMedia>
<ItemCardHeader title={entity.metadata.name} subtitle={owner} />
<ItemCardHeader
title={entity.metadata.title ?? entity.metadata.name}
subtitle={owner}
/>
</CardMedia>
<CardContent>
{entity.metadata.tags?.length ? (