Mock permission

Signed-off-by: Dominika Zemanovicova <dzemanov@redhat.com>
This commit is contained in:
Dominika Zemanovicova
2025-01-09 13:39:55 +01:00
parent 6f6e6846cb
commit 2f993dfc9c
2 changed files with 61 additions and 34 deletions
+22 -6
View File
@@ -36,7 +36,8 @@ import fixture4 from '../src/__fixtures__/2-cronjobs.json';
import fixture5 from '../src/__fixtures__/1-rollouts.json';
import fixture6 from '../src/__fixtures__/3-ingresses.json';
import fixture7 from '../src/__fixtures__/2-statefulsets.json';
import { TestApiProvider } from '@backstage/test-utils';
import { mockApis, TestApiProvider } from '@backstage/test-utils';
import { permissionApiRef } from '@backstage/plugin-permission-react';
import { StructuredMetadataTable } from '@backstage/core-components';
const mockEntity: Entity = {
@@ -149,7 +150,10 @@ createDevApp()
title: 'Fixture 1',
element: (
<TestApiProvider
apis={[[kubernetesApiRef, new MockKubernetesClient(fixture1)]]}
apis={[
[kubernetesApiRef, new MockKubernetesClient(fixture1)],
[permissionApiRef, mockApis.permission()],
]}
>
<EntityProvider entity={mockEntity}>
<EntityKubernetesContent />
@@ -162,7 +166,10 @@ createDevApp()
title: 'Fixture 2',
element: (
<TestApiProvider
apis={[[kubernetesApiRef, new MockKubernetesClient(fixture2)]]}
apis={[
[kubernetesApiRef, new MockKubernetesClient(fixture2)],
[permissionApiRef, mockApis.permission()],
]}
>
<EntityProvider entity={mockEntity}>
<EntityKubernetesContent />
@@ -175,7 +182,10 @@ createDevApp()
title: 'Fixture 3',
element: (
<TestApiProvider
apis={[[kubernetesApiRef, new MockKubernetesClient(fixture3)]]}
apis={[
[kubernetesApiRef, new MockKubernetesClient(fixture3)],
[permissionApiRef, mockApis.permission()],
]}
>
<EntityProvider entity={mockEntity}>
<EntityKubernetesContent />
@@ -188,7 +198,10 @@ createDevApp()
title: 'Fixture 4',
element: (
<TestApiProvider
apis={[[kubernetesApiRef, new MockKubernetesClient(fixture4)]]}
apis={[
[kubernetesApiRef, new MockKubernetesClient(fixture4)],
[permissionApiRef, mockApis.permission()],
]}
>
<EntityProvider entity={mockEntity}>
<EntityKubernetesContent />
@@ -201,7 +214,10 @@ createDevApp()
title: 'Fixture 5',
element: (
<TestApiProvider
apis={[[kubernetesApiRef, new MockKubernetesClient(fixture5)]]}
apis={[
[kubernetesApiRef, new MockKubernetesClient(fixture5)],
[permissionApiRef, mockApis.permission()],
]}
>
<EntityProvider entity={mockEntity}>
<EntityKubernetesContent />
@@ -16,11 +16,16 @@
import React from 'react';
import { screen } from '@testing-library/react';
import { renderInTestApp } from '@backstage/test-utils';
import {
mockApis,
renderInTestApp,
TestApiProvider,
} from '@backstage/test-utils';
import { KubernetesContent } from './KubernetesContent';
import { useKubernetesObjects } from '@backstage/plugin-kubernetes-react';
import * as oneDeployment from './__fixtures__/1-deployments.json';
import * as twoDeployments from './__fixtures__/2-deployments.json';
import { permissionApiRef } from '@backstage/plugin-permission-react';
jest.mock('@backstage/plugin-kubernetes-react', () => ({
...jest.requireActual('@backstage/plugin-kubernetes-react'),
@@ -39,15 +44,17 @@ describe('KubernetesContent', () => {
error: undefined,
});
await renderInTestApp(
<KubernetesContent
entity={
{
metadata: {
name: 'some-entity',
},
} as any
}
/>,
<TestApiProvider apis={[[permissionApiRef, mockApis.permission()]]}>
<KubernetesContent
entity={
{
metadata: {
name: 'some-entity',
},
} as any
}
/>
</TestApiProvider>,
);
expect(screen.getByText('Your Clusters')).toBeInTheDocument();
// TODO add a prompt for the user to configure their clusters
@@ -81,15 +88,17 @@ describe('KubernetesContent', () => {
error: undefined,
});
await renderInTestApp(
<KubernetesContent
entity={
{
metadata: {
name: 'some-entity',
},
} as any
}
/>,
<TestApiProvider apis={[[permissionApiRef, mockApis.permission()]]}>
<KubernetesContent
entity={
{
metadata: {
name: 'some-entity',
},
} as any
}
/>
</TestApiProvider>,
);
expect(screen.getByText('cluster-1')).toBeInTheDocument();
@@ -145,15 +154,17 @@ describe('KubernetesContent', () => {
error: undefined,
});
await renderInTestApp(
<KubernetesContent
entity={
{
metadata: {
name: 'some-entity',
},
} as any
}
/>,
<TestApiProvider apis={[[permissionApiRef, mockApis.permission()]]}>
<KubernetesContent
entity={
{
metadata: {
name: 'some-entity',
},
} as any
}
/>
</TestApiProvider>,
);
expect(screen.getAllByText('Cluster')).toHaveLength(2);
expect(screen.getByText('cluster-a')).toBeInTheDocument();