catalog-react: factory mock shortcut for catalogApiMock
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
@@ -21,7 +21,6 @@ import {
|
||||
createTestEntityPage,
|
||||
catalogApiMock,
|
||||
} from '@backstage/plugin-catalog-react/testUtils';
|
||||
import { catalogApiRef } from '@backstage/plugin-catalog-react';
|
||||
import catalogGraphPlugin from './alpha';
|
||||
import { catalogGraphRouteRef } from './routes';
|
||||
import { catalogGraphApiRef, DefaultCatalogGraphApi } from './api';
|
||||
@@ -58,7 +57,7 @@ describe('catalog-graph alpha plugin', () => {
|
||||
'/catalog-graph': catalogGraphRouteRef,
|
||||
},
|
||||
apis: [
|
||||
[catalogApiRef, catalogApiMock({ entities: [entity] })],
|
||||
catalogApiMock({ entities: [entity] }),
|
||||
[catalogGraphApiRef, new DefaultCatalogGraphApi()],
|
||||
],
|
||||
});
|
||||
@@ -95,7 +94,7 @@ describe('catalog-graph alpha plugin', () => {
|
||||
'/catalog-graph': catalogGraphRouteRef,
|
||||
},
|
||||
apis: [
|
||||
[catalogApiRef, catalogApiMock({ entities: [entity] })],
|
||||
catalogApiMock({ entities: [entity] }),
|
||||
[catalogGraphApiRef, new DefaultCatalogGraphApi()],
|
||||
],
|
||||
});
|
||||
@@ -131,7 +130,7 @@ describe('catalog-graph alpha plugin', () => {
|
||||
'/catalog-graph': catalogGraphRouteRef,
|
||||
},
|
||||
apis: [
|
||||
[catalogApiRef, catalogApiMock({ entities: [entity] })],
|
||||
catalogApiMock({ entities: [entity] }),
|
||||
[catalogGraphApiRef, new DefaultCatalogGraphApi()],
|
||||
],
|
||||
});
|
||||
|
||||
@@ -11,10 +11,13 @@ import { Entity } from '@backstage/catalog-model';
|
||||
import { EntityListContextProps } from '@backstage/plugin-catalog-react';
|
||||
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
|
||||
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
||||
import { MockWithApiFactory } from '@backstage/frontend-test-utils';
|
||||
import { PropsWithChildren } from 'react';
|
||||
|
||||
// @public
|
||||
export function catalogApiMock(options?: { entities?: Entity[] }): CatalogApi;
|
||||
export function catalogApiMock(options?: {
|
||||
entities?: Entity[];
|
||||
}): MockWithApiFactory<CatalogApi>;
|
||||
|
||||
// @public
|
||||
export namespace catalogApiMock {
|
||||
|
||||
@@ -23,7 +23,11 @@ import { InMemoryCatalogClient } from '@backstage/catalog-client/testUtils';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import { catalogApiRef } from '@backstage/plugin-catalog-react';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { ApiMock } from '@backstage/frontend-test-utils';
|
||||
import {
|
||||
ApiMock,
|
||||
attachMockApiFactory,
|
||||
type MockWithApiFactory,
|
||||
} from '@backstage/frontend-test-utils';
|
||||
|
||||
/** @internal */
|
||||
function simpleMock<TApi>(
|
||||
@@ -41,13 +45,13 @@ function simpleMock<TApi>(
|
||||
}
|
||||
}
|
||||
}
|
||||
return Object.assign(mock, {
|
||||
factory: createApiFactory({
|
||||
api: ref,
|
||||
deps: {},
|
||||
factory: () => mock,
|
||||
}),
|
||||
}) as ApiMock<TApi>;
|
||||
const factory = createApiFactory({
|
||||
api: ref,
|
||||
deps: {},
|
||||
factory: () => mock,
|
||||
});
|
||||
const marked = attachMockApiFactory(ref, mock);
|
||||
return Object.assign(marked, { factory }) as ApiMock<TApi>;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -58,8 +62,11 @@ function simpleMock<TApi>(
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export function catalogApiMock(options?: { entities?: Entity[] }): CatalogApi {
|
||||
return new InMemoryCatalogClient(options);
|
||||
export function catalogApiMock(options?: {
|
||||
entities?: Entity[];
|
||||
}): MockWithApiFactory<CatalogApi> {
|
||||
const instance = new InMemoryCatalogClient(options);
|
||||
return attachMockApiFactory(catalogApiRef, instance);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -23,7 +23,6 @@ import {
|
||||
EntityCardBlueprint,
|
||||
EntityContentBlueprint,
|
||||
} from '../alpha/blueprints';
|
||||
import { catalogApiRef } from '../api';
|
||||
|
||||
const mockEntity: Entity = {
|
||||
apiVersion: 'backstage.io/v1alpha1',
|
||||
@@ -386,7 +385,7 @@ describe('createTestEntityPage', () => {
|
||||
createTestEntityPage({ entity: mockEntity }),
|
||||
catalogApiCard,
|
||||
],
|
||||
apis: [[catalogApiRef, catalogApiMock({ entities: customEntities })]],
|
||||
apis: [catalogApiMock({ entities: customEntities })],
|
||||
});
|
||||
|
||||
// Should use the user-provided catalog API with custom entities, not mockEntity
|
||||
|
||||
@@ -21,7 +21,6 @@ import {
|
||||
createTestEntityPage,
|
||||
catalogApiMock,
|
||||
} from '@backstage/plugin-catalog-react/testUtils';
|
||||
import { catalogApiRef } from '@backstage/plugin-catalog-react';
|
||||
import orgPlugin from './alpha';
|
||||
|
||||
const EntityGroupProfileCard = orgPlugin.getExtension(
|
||||
@@ -230,12 +229,7 @@ describe('org plugin entity cards', () => {
|
||||
createTestEntityPage({ entity: groupEntity }),
|
||||
EntityMembersListCard,
|
||||
],
|
||||
apis: [
|
||||
[
|
||||
catalogApiRef,
|
||||
catalogApiMock({ entities: [groupEntity, memberUser] }),
|
||||
],
|
||||
],
|
||||
apis: [catalogApiMock({ entities: [groupEntity, memberUser] })],
|
||||
});
|
||||
|
||||
expect(await screen.findByText('Alice Smith')).toBeInTheDocument();
|
||||
@@ -261,7 +255,7 @@ describe('org plugin entity cards', () => {
|
||||
createTestEntityPage({ entity: groupEntity }),
|
||||
EntityMembersListCard,
|
||||
],
|
||||
apis: [[catalogApiRef, catalogApiMock({ entities: [groupEntity] })]],
|
||||
apis: [catalogApiMock({ entities: [groupEntity] })],
|
||||
});
|
||||
|
||||
expect(
|
||||
|
||||
Reference in New Issue
Block a user