chore: fixing the tests

Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
blam
2023-01-09 16:45:43 +01:00
parent f59448367a
commit 68aeea4ba5
3 changed files with 76 additions and 17 deletions
@@ -25,6 +25,7 @@ import { Route, Routes } from 'react-router-dom';
import {
scaffolderApiRef,
ScaffolderApi,
SecretsContextProvider,
} from '@backstage/plugin-scaffolder-react';
import { TemplatePage } from './TemplatePage';
import {
@@ -127,7 +128,9 @@ describe('TemplatePage', () => {
});
const rendered = await renderInTestApp(
<ApiProvider apis={apis}>
<TemplatePage />
<SecretsContextProvider>
<TemplatePage />
</SecretsContextProvider>
</ApiProvider>,
{
mountedRoutes: {
@@ -148,7 +151,9 @@ describe('TemplatePage', () => {
scaffolderApiMock.getTemplateParameterSchema.mockReturnValueOnce(promise);
const rendered = await renderInTestApp(
<ApiProvider apis={apis}>
<TemplatePage />
<SecretsContextProvider>
<TemplatePage />
</SecretsContextProvider>
</ApiProvider>,
{
mountedRoutes: {
@@ -189,7 +194,9 @@ describe('TemplatePage', () => {
});
const { findByLabelText, findByText } = await renderInTestApp(
<ApiProvider apis={apis}>
<TemplatePage />
<SecretsContextProvider>
<TemplatePage />
</SecretsContextProvider>
</ApiProvider>,
{
mountedRoutes: {
@@ -236,7 +243,14 @@ describe('TemplatePage', () => {
const rendered = await renderInTestApp(
<ApiProvider apis={apis}>
<Routes>
<Route path="/create/test" element={<TemplatePage />} />
<Route
path="/create/test"
element={
<SecretsContextProvider>
<TemplatePage />
</SecretsContextProvider>
}
/>
<Route path="/create" element={<>This is root</>} />
</Routes>
</ApiProvider>,
@@ -289,7 +303,9 @@ describe('TemplatePage', () => {
const { findByText, findByLabelText, findAllByRole, findByRole } =
await renderInTestApp(
<ApiProvider apis={apis}>
<TemplatePage />
<SecretsContextProvider>
<TemplatePage />
</SecretsContextProvider>
</ApiProvider>,
{
mountedRoutes: {
@@ -333,7 +349,9 @@ describe('TemplatePage', () => {
await renderInTestApp(
<ApiProvider apis={apis}>
<TemplatePage />
<SecretsContextProvider>
<TemplatePage />
</SecretsContextProvider>
</ApiProvider>,
{
mountedRoutes: {
@@ -23,21 +23,28 @@ jest.mock('@backstage/plugin-scaffolder-react', () => ({
}));
import React from 'react';
import { render } from '@testing-library/react';
import { useEntityList } from '@backstage/plugin-catalog-react';
import { TemplateGroups } from './TemplateGroups';
import { TestApiProvider } from '@backstage/test-utils';
import { renderInTestApp, TestApiProvider } from '@backstage/test-utils';
import { errorApiRef } from '@backstage/core-plugin-api';
import { TemplateGroup } from '@backstage/plugin-scaffolder-react';
import { nextRouteRef } from '../routes';
describe('TemplateGroups', () => {
beforeEach(() => jest.clearAllMocks());
it('should return progress if the hook is loading', async () => {
(useEntityList as jest.Mock).mockReturnValue({ loading: true });
const { findByTestId } = render(
const { findByTestId } = await renderInTestApp(
<TestApiProvider apis={[[errorApiRef, {}]]}>
<TemplateGroups groups={[]} />
</TestApiProvider>,
{
mountedRoutes: {
'/next': nextRouteRef,
},
},
);
expect(await findByTestId('progress')).toBeInTheDocument();
@@ -51,10 +58,15 @@ describe('TemplateGroups', () => {
const errorApi = {
post: jest.fn(),
};
render(
await renderInTestApp(
<TestApiProvider apis={[[errorApiRef, errorApi]]}>
<TemplateGroups groups={[]} />
</TestApiProvider>,
{
mountedRoutes: {
'/next': nextRouteRef,
},
},
);
expect(errorApi.post).toHaveBeenCalledWith(mockError);
@@ -67,10 +79,15 @@ describe('TemplateGroups', () => {
error: null,
});
const { findByText } = render(
const { findByText } = await renderInTestApp(
<TestApiProvider apis={[[errorApiRef, {}]]}>
<TemplateGroups groups={[]} />
</TestApiProvider>,
{
mountedRoutes: {
'/next': nextRouteRef,
},
},
);
expect(await findByText(/No templates found/)).toBeInTheDocument();
@@ -83,10 +100,15 @@ describe('TemplateGroups', () => {
error: null,
});
const { findByText } = render(
const { findByText } = await renderInTestApp(
<TestApiProvider apis={[[errorApiRef, {}]]}>
<TemplateGroups groups={[]} />
</TestApiProvider>,
{
mountedRoutes: {
'/next': nextRouteRef,
},
},
);
expect(await findByText(/No templates found/)).toBeInTheDocument();
@@ -118,14 +140,23 @@ describe('TemplateGroups', () => {
error: null,
});
render(
await renderInTestApp(
<TestApiProvider apis={[[errorApiRef, {}]]}>
<TemplateGroups groups={[{ title: 'all', filter: () => true }]} />
</TestApiProvider>,
{
mountedRoutes: {
'/next': nextRouteRef,
},
},
);
expect(TemplateGroup).toHaveBeenCalledWith(
expect.objectContaining({ templates: mockEntities }),
expect.objectContaining({
templates: mockEntities.map(template =>
expect.objectContaining({ template }),
),
}),
{},
);
});
@@ -156,16 +187,23 @@ describe('TemplateGroups', () => {
error: null,
});
render(
await renderInTestApp(
<TestApiProvider apis={[[errorApiRef, {}]]}>
<TemplateGroups
groups={[{ title: 'all', filter: e => e.metadata.name === 't1' }]}
/>
</TestApiProvider>,
{
mountedRoutes: {
'/next': nextRouteRef,
},
},
);
expect(TemplateGroup).toHaveBeenCalledWith(
expect.objectContaining({ templates: [mockEntities[0]] }),
expect.objectContaining({
templates: [expect.objectContaining({ template: mockEntities[0] })],
}),
{},
);
});
@@ -25,6 +25,7 @@ import React from 'react';
import {
ScaffolderApi,
scaffolderApiRef,
SecretsContextProvider,
} from '@backstage/plugin-scaffolder-react';
import { TemplateWizardPage } from './TemplateWizardPage';
import { rootRouteRef } from '../../routes';
@@ -76,7 +77,9 @@ describe('TemplateWizardPage', () => {
const { findByRole, getByRole } = await renderInTestApp(
<ApiProvider apis={apis}>
<TemplateWizardPage customFieldExtensions={[]} />,
<SecretsContextProvider>
<TemplateWizardPage customFieldExtensions={[]} />,
</SecretsContextProvider>
</ApiProvider>,
{
mountedRoutes: {