@@ -3,6 +3,7 @@ kind: Domain
|
||||
metadata:
|
||||
name: artists
|
||||
description: Everything related to artists
|
||||
title: Artists
|
||||
links:
|
||||
- url: http://example.com/domain/artists/
|
||||
title: Domain Readme
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -58,13 +59,14 @@ describe('<DomainCard />', () => {
|
||||
kind: 'Domain',
|
||||
metadata: {
|
||||
name: 'artists',
|
||||
title: 'my Custom Title',
|
||||
},
|
||||
spec: {
|
||||
owner: 'guest',
|
||||
},
|
||||
};
|
||||
const { getByText } = await renderInTestApp(
|
||||
<DomainCard entity={entity} title="my Custom Title" />,
|
||||
<DomainCard entity={entity} />,
|
||||
{
|
||||
mountedRoutes: {
|
||||
'/catalog/:namespace/:kind/:name': entityRouteRef,
|
||||
@@ -77,5 +79,6 @@ describe('<DomainCard />', () => {
|
||||
'/catalog/default/domain/artists',
|
||||
);
|
||||
expect(getByText('my Custom Title')).toBeInTheDocument();
|
||||
expect(screen.queryByText('artists')).not.toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -35,7 +35,7 @@ import { LinkButton, ItemCardHeader } from '@backstage/core-components';
|
||||
import { useRouteRef } from '@backstage/core-plugin-api';
|
||||
|
||||
/** @public */
|
||||
export const DomainCard = (props: { entity: DomainEntity; title?: string }) => {
|
||||
export const DomainCard = (props: { entity: DomainEntity }) => {
|
||||
const { entity } = props;
|
||||
|
||||
const catalogEntityRoute = useRouteRef(entityRouteRef);
|
||||
@@ -54,7 +54,7 @@ export const DomainCard = (props: { entity: DomainEntity; title?: string }) => {
|
||||
<Card>
|
||||
<CardMedia>
|
||||
<ItemCardHeader
|
||||
title={props.title ?? entity.metadata.name}
|
||||
title={entity.metadata.title ?? entity.metadata.name}
|
||||
subtitle={owner}
|
||||
/>
|
||||
</CardMedia>
|
||||
|
||||
@@ -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 ? (
|
||||
|
||||
Reference in New Issue
Block a user