rtl 13 fixes for tests with type issues

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2023-10-13 09:21:51 +02:00
parent d60fbcb553
commit 0935b0d60f
33 changed files with 862 additions and 963 deletions
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { useApi } from '@backstage/core-plugin-api';
import { renderHook } from '@testing-library/react';
import { renderHook, waitFor } from '@testing-library/react';
import { useEvents } from './useEvents';
import { DateTime } from 'luxon';
@@ -49,7 +49,7 @@ describe('Events', () => {
mockGetEventsByInvolvedObjectName.mockResolvedValue(response),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useEvents({
involvedObjectName: 'some-objecgt',
namespace: 'some-namespace',
@@ -59,7 +59,9 @@ describe('Events', () => {
expect(result.current.loading).toEqual(true);
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.loading).toEqual(false);
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -16,7 +16,7 @@
import { useCustomResources } from './useCustomResources';
import { Entity } from '@backstage/catalog-model';
import { renderHook } from '@testing-library/react';
import { act, renderHook, waitFor } from '@testing-library/react';
import { useApi } from '@backstage/core-plugin-api';
import { CustomResourceMatcher } from '@backstage/plugin-kubernetes-common';
import { generateAuth } from './auth';
@@ -97,13 +97,13 @@ describe('useCustomResources', () => {
getCustomObjectsByEntity:
mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useCustomResources(entity, customResourceMatchers),
);
expect(result.current.loading).toEqual(true);
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -117,20 +117,20 @@ describe('useCustomResources', () => {
getCustomObjectsByEntity:
mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useCustomResources(entity, customResourceMatchers, 100),
);
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expectMocksCalledCorrectly(2);
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).toStrictEqual(mockResponse);
expectMocksCalledCorrectly(2);
});
it('should return error when getObjectsByEntity throws', async () => {
mockGenerateAuth.mockResolvedValue(entityWithAuthToken.auth);
@@ -139,11 +139,11 @@ describe('useCustomResources', () => {
message: 'some error',
}),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useCustomResources(entity, customResourceMatchers),
);
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBe('some error');
expect(result.current.loading).toEqual(false);
@@ -162,17 +162,19 @@ describe('useCustomResources', () => {
mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useCustomResources(entity, customResourceMatchers, 100),
);
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBe('generateAuth failed');
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeUndefined();
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -186,17 +188,19 @@ describe('useCustomResources', () => {
.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useCustomResources(entity, customResourceMatchers, 100),
);
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBe('failed to fetch');
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeUndefined();
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -212,17 +216,19 @@ describe('useCustomResources', () => {
mockGetCustomObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useCustomResources(entity, customResourceMatchers, 100),
);
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).not.toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeDefined();
});
expect(result.current.error).toBe('generateAuth failed');
expect(result.current.loading).toEqual(false);
@@ -236,17 +242,19 @@ describe('useCustomResources', () => {
.mockRejectedValue({ message: 'failed to fetch' }),
});
const { result, waitForNextUpdate } = renderHook(() =>
const { result } = renderHook(() =>
useCustomResources(entity, customResourceMatchers, 100),
);
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).not.toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeDefined();
});
expect(result.current.error).toBe('failed to fetch');
expect(result.current.loading).toEqual(false);
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { useApi } from '@backstage/core-plugin-api';
import { renderHook } from '@testing-library/react';
import { renderHook, waitFor } from '@testing-library/react';
import { useIsPodExecTerminalSupported } from './useIsPodExecTerminalSupported';
@@ -68,15 +68,14 @@ describe('useIsClusterShellEnabled', () => {
async ({ testClusters, returnValue }) => {
clusters = testClusters;
const { result, waitForNextUpdate } = renderHook(() =>
useIsPodExecTerminalSupported(),
);
const { result } = renderHook(() => useIsPodExecTerminalSupported());
expect(result.current.loading).toEqual(true);
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.loading).toEqual(false);
});
expect(result.current.loading).toEqual(false);
expect(result.current.value).toBe(returnValue);
},
);
@@ -16,7 +16,7 @@
import { useKubernetesObjects } from './useKubernetesObjects';
import { Entity } from '@backstage/catalog-model';
import { renderHook } from '@testing-library/react';
import { act, renderHook, waitFor } from '@testing-library/react';
import { useApi } from '@backstage/core-plugin-api';
import { generateAuth } from './auth';
@@ -87,13 +87,13 @@ describe('useKubernetesObjects', () => {
getObjectsByEntity:
mockGetObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
useKubernetesObjects(entity),
);
const { result } = renderHook(() => useKubernetesObjects(entity));
expect(result.current.loading).toEqual(true);
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.loading).toEqual(false);
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -107,14 +107,13 @@ describe('useKubernetesObjects', () => {
getObjectsByEntity:
mockGetObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
useKubernetesObjects(entity, 100),
);
const { result } = renderHook(() => useKubernetesObjects(entity, 100));
await waitForNextUpdate();
expect(result.current.error).toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expectMocksCalledCorrectly(2);
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -129,11 +128,9 @@ describe('useKubernetesObjects', () => {
message: 'some error',
}),
});
const { result, waitForNextUpdate } = renderHook(() =>
useKubernetesObjects(entity),
);
const { result } = renderHook(() => useKubernetesObjects(entity));
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBe('some error');
expect(result.current.loading).toEqual(false);
@@ -152,17 +149,17 @@ describe('useKubernetesObjects', () => {
mockGetObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
useKubernetesObjects(entity, 100),
);
const { result } = renderHook(() => useKubernetesObjects(entity, 100));
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBe('generateAuth failed');
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeUndefined();
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -176,17 +173,17 @@ describe('useKubernetesObjects', () => {
.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
useKubernetesObjects(entity, 100),
);
const { result } = renderHook(() => useKubernetesObjects(entity, 100));
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBe('failed to fetch');
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeUndefined();
});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
@@ -202,17 +199,17 @@ describe('useKubernetesObjects', () => {
mockGetObjectsByEntity.mockResolvedValue(mockResponse),
});
const { result, waitForNextUpdate } = renderHook(() =>
useKubernetesObjects(entity, 100),
);
const { result } = renderHook(() => useKubernetesObjects(entity, 100));
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).not.toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeDefined();
});
expect(result.current.error).toBe('generateAuth failed');
expect(result.current.loading).toEqual(false);
@@ -226,17 +223,17 @@ describe('useKubernetesObjects', () => {
.mockRejectedValue({ message: 'failed to fetch' }),
});
const { result, waitForNextUpdate } = renderHook(() =>
useKubernetesObjects(entity, 100),
);
const { result } = renderHook(() => useKubernetesObjects(entity, 100));
await waitForNextUpdate();
await act(async () => {});
expect(result.current.error).toBeUndefined();
expect(result.current.loading).toEqual(false);
expect(result.current.kubernetesObjects).not.toBeUndefined();
await waitForNextUpdate();
await waitFor(() => {
expect(result.current.error).toBeDefined();
});
expect(result.current.error).toBe('failed to fetch');
expect(result.current.loading).toEqual(false);