Skip to content

Commit

Permalink
feat(EntityLayout): display title field if defined
Browse files Browse the repository at this point in the history
Signed-off-by: Phil Kuang <pkuang@factset.com>
  • Loading branch information
kuangp committed Sep 13, 2021
1 parent 16b010f commit d5b2361
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/unlucky-tables-repair.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog': patch
---

Display entity titles on `EntityLayout` if defined
30 changes: 30 additions & 0 deletions plugins/catalog/src/components/EntityLayout/EntityLayout.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,36 @@ describe('EntityLayout', () => {
expect(rendered.getByText('tabbed-test-content')).toBeInTheDocument();
});

it('renders the entity title if defined', async () => {
const mockEntityDataWithTitle = {
loading: false,
error: undefined,
entity: {
kind: 'MyKind',
metadata: {
name: 'my-entity',
title: 'My Entity',
},
} as Entity,
};

const rendered = await renderInTestApp(
<ApiProvider apis={mockApis}>
<EntityContext.Provider value={mockEntityDataWithTitle}>
<EntityLayout>
<EntityLayout.Route path="/" title="tabbed-test-title">
<div>tabbed-test-content</div>
</EntityLayout.Route>
</EntityLayout>
</EntityContext.Provider>
</ApiProvider>,
);

expect(rendered.getByText('My Entity')).toBeInTheDocument();
expect(rendered.getByText('tabbed-test-title')).toBeInTheDocument();
expect(rendered.getByText('tabbed-test-content')).toBeInTheDocument();
});

it('renders error message when entity is not found', async () => {
const noEntityData = {
...mockEntityData,
Expand Down
3 changes: 2 additions & 1 deletion plugins/catalog/src/components/EntityLayout/EntityLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@ const headerProps = (
): { headerTitle: string; headerType: string } => {
const kind = paramKind ?? entity?.kind ?? '';
const namespace = paramNamespace ?? entity?.metadata.namespace ?? '';
const name = paramName ?? entity?.metadata.name ?? '';
const name =
entity?.metadata.title ?? paramName ?? entity?.metadata.name ?? '';
return {
headerTitle: `${name}${
namespace && namespace !== ENTITY_DEFAULT_NAMESPACE
Expand Down

0 comments on commit d5b2361

Please sign in to comment.