Revert to catalogApiMock.mock(), only keep Entity type annotation

The InMemoryCatalogClient + initialRouteEntries approach didn't work
because route params weren't being resolved by the test harness,
causing getEntityByRef to receive an empty ref. The original mock
with getEntityByRef: async () => entityMock works correctly. The
only change from master is adding the Entity type annotation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2026-05-20 08:34:28 +02:00
parent ac1a4ab3c9
commit 479d78ed5c
+64 -34
View File
@@ -28,6 +28,7 @@ import {
} from '@backstage/plugin-catalog-react/alpha';
import { catalogApiMock } from '@backstage/plugin-catalog-react/testUtils';
import {
catalogApiRef,
entityRouteRef,
MockStarredEntitiesApi,
starredEntitiesApiRef,
@@ -107,8 +108,8 @@ describe('Entity page', () => {
],
};
const mockCatalogApi = catalogApiMock({
entities: [entityMock],
const mockCatalogApi = catalogApiMock.mock({
getEntityByRef: async () => entityMock,
});
const mockStarredEntitiesApi = new MockStarredEntitiesApi();
@@ -151,8 +152,10 @@ describe('Entity page', () => {
.add(apidocsEntityContent);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -196,8 +199,10 @@ describe('Entity page', () => {
.add(apidocsEntityContent);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -234,8 +239,10 @@ describe('Entity page', () => {
});
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -285,8 +292,10 @@ describe('Entity page', () => {
});
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -324,8 +333,10 @@ describe('Entity page', () => {
});
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -356,8 +367,10 @@ describe('Entity page', () => {
.add(overviewEntityContent);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -400,8 +413,10 @@ describe('Entity page', () => {
.add(apidocsEntityContent);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -434,8 +449,10 @@ describe('Entity page', () => {
.add(apidocsEntityContent);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -473,8 +490,10 @@ describe('Entity page', () => {
.add(apidocsEntityContent);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -520,8 +539,10 @@ describe('Entity page', () => {
.add(apidocsEntityContent);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -567,8 +588,10 @@ describe('Entity page', () => {
});
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -602,8 +625,10 @@ describe('Entity page', () => {
);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -639,8 +664,10 @@ describe('Entity page', () => {
).add(customEntityHeader);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -696,8 +723,10 @@ describe('Entity page', () => {
).add(menuItem);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -749,8 +778,10 @@ describe('Entity page', () => {
).add(menuItem);
await renderInTestApp(tester.reactElement(), {
apis: [mockCatalogApi, [starredEntitiesApiRef, mockStarredEntitiesApi]],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
apis: [
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
config: {
app: {
title: 'Custom app',
@@ -851,10 +882,9 @@ describe('Entity page', () => {
convertLegacyRouteRef(entityRouteRef),
},
apis: [
mockCatalogApi,
[catalogApiRef, mockCatalogApi],
[starredEntitiesApiRef, mockStarredEntitiesApi],
],
initialRouteEntries: ['/catalog/default/component/artist-lookup'],
});
await userEvent.click(await screen.findByTestId('menu-button'));