Merge pull request #27026 from backstage/freben/mock-apis-config

Implement the beginnings of `mockApis`
This commit is contained in:
Fredrik Adelöw
2024-10-11 11:08:54 +02:00
committed by GitHub
114 changed files with 2273 additions and 1031 deletions
@@ -13,13 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { fireEvent } from '@testing-library/react';
import { CardHeader } from './CardHeader';
import { ThemeProvider } from '@material-ui/core/styles';
import { lightTheme } from '@backstage/theme';
import {
MockStorageApi,
mockApis,
renderInTestApp,
TestApiProvider,
} from '@backstage/test-utils';
@@ -44,7 +45,7 @@ describe('CardHeader', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
]}
@@ -75,7 +76,7 @@ describe('CardHeader', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
]}
@@ -135,7 +136,7 @@ describe('CardHeader', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
]}
@@ -164,7 +165,7 @@ describe('CardHeader', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
]}
@@ -13,14 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { DefaultStarredEntitiesApi } from '@backstage/plugin-catalog';
import {
entityRouteRef,
starredEntitiesApiRef,
} from '@backstage/plugin-catalog-react';
import {
MockPermissionApi,
MockStorageApi,
mockApis,
renderInTestApp,
TestApiProvider,
} from '@backstage/test-utils';
@@ -51,10 +51,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} />
@@ -81,10 +81,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} />
@@ -113,10 +113,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} />
@@ -143,10 +143,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} />
@@ -179,10 +179,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} />
@@ -219,10 +219,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} />
@@ -264,10 +264,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} additionalLinks={[]} />
@@ -313,10 +313,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} additionalLinks={[]} />
@@ -356,10 +356,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} />
@@ -396,10 +396,10 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi()],
[permissionApiRef, mockApis.permission()],
]}
>
<TemplateCard template={mockTemplate} onSelected={mockOnSelected} />
@@ -428,9 +428,6 @@ describe('TemplateCard', () => {
},
};
const mockOnSelected = jest.fn();
const mockAuthorize = jest
.fn()
.mockImplementation(async () => ({ result: AuthorizeResult.DENY }));
// SWR used by the usePermission hook needs cache to be reset for each test
const { queryByText } = await renderInTestApp(
<SWRConfig value={{ provider: () => new Map() }}>
@@ -439,10 +436,13 @@ describe('TemplateCard', () => {
[
starredEntitiesApiRef,
new DefaultStarredEntitiesApi({
storageApi: MockStorageApi.create(),
storageApi: mockApis.storage(),
}),
],
[permissionApiRef, new MockPermissionApi(mockAuthorize)],
[
permissionApiRef,
mockApis.permission({ authorize: AuthorizeResult.DENY }),
],
]}
>
<TemplateCard template={mockTemplate} onSelected={mockOnSelected} />
@@ -16,7 +16,7 @@
import { ApiProvider } from '@backstage/core-app-api';
import {
MockAnalyticsApi,
mockApis,
renderInTestApp,
TestApiRegistry,
} from '@backstage/test-utils';
@@ -42,7 +42,7 @@ const scaffolderApiMock: jest.Mocked<ScaffolderApi> = {
const catalogApi = catalogApiMock.mock();
const analyticsMock = new MockAnalyticsApi();
const analyticsMock = mockApis.analytics();
const apis = TestApiRegistry.from(
[scaffolderApiRef, scaffolderApiMock],
[catalogApiRef, catalogApi],