@@ -71,10 +71,10 @@ describe('useKubernetesObjects', () => {
|
||||
const mockGetObjectsByEntity = jest.fn();
|
||||
const mockDecorateRequestBodyForAuth = jest.fn();
|
||||
|
||||
const expectMocksCalledCorrectly = () => {
|
||||
expect(mockGetClusters).toBeCalledTimes(1);
|
||||
const expectMocksCalledCorrectly = (numOfCalls: number = 1) => {
|
||||
expect(mockGetClusters).toBeCalledTimes(numOfCalls);
|
||||
expect(mockGetClusters).toHaveBeenLastCalledWith();
|
||||
expect(mockDecorateRequestBodyForAuth).toBeCalledTimes(2);
|
||||
expect(mockDecorateRequestBodyForAuth).toBeCalledTimes(numOfCalls * 2);
|
||||
expect(mockDecorateRequestBodyForAuth).toHaveBeenCalledWith('google', {
|
||||
entity,
|
||||
});
|
||||
@@ -82,7 +82,7 @@ describe('useKubernetesObjects', () => {
|
||||
'authprovider2',
|
||||
entityWithAuthToken,
|
||||
);
|
||||
expect(mockGetObjectsByEntity).toBeCalledTimes(1);
|
||||
expect(mockGetObjectsByEntity).toBeCalledTimes(numOfCalls);
|
||||
expect(mockGetObjectsByEntity).toHaveBeenLastCalledWith(
|
||||
entityWithAuthToken,
|
||||
);
|
||||
@@ -110,6 +110,26 @@ describe('useKubernetesObjects', () => {
|
||||
|
||||
expectMocksCalledCorrectly();
|
||||
});
|
||||
it('should update on an interval', async () => {
|
||||
(useApi as any).mockReturnValue({
|
||||
getClusters: mockGetClusters.mockResolvedValue(getClustersResponse),
|
||||
getObjectsByEntity:
|
||||
mockGetObjectsByEntity.mockResolvedValue(mockResponse),
|
||||
decorateRequestBodyForAuth:
|
||||
mockDecorateRequestBodyForAuth.mockResolvedValue(entityWithAuthToken),
|
||||
});
|
||||
const { result, waitForNextUpdate } = renderHook(() =>
|
||||
useKubernetesObjects(entity, 100),
|
||||
);
|
||||
|
||||
await waitForNextUpdate();
|
||||
await waitForNextUpdate();
|
||||
|
||||
expect(result.current.error).toBeUndefined();
|
||||
expect(result.current.kubernetesObjects).toStrictEqual(mockResponse);
|
||||
|
||||
expectMocksCalledCorrectly(2);
|
||||
});
|
||||
it('should return error when getObjectsByEntity throws', async () => {
|
||||
(useApi as any).mockReturnValue({
|
||||
getClusters: mockGetClusters.mockResolvedValue(getClustersResponse),
|
||||
|
||||
@@ -30,7 +30,10 @@ export interface KubernetesObjects {
|
||||
error: string | undefined;
|
||||
}
|
||||
|
||||
export const useKubernetesObjects = (entity: Entity): KubernetesObjects => {
|
||||
export const useKubernetesObjects = (
|
||||
entity: Entity,
|
||||
intervalMs: number = 10000,
|
||||
): KubernetesObjects => {
|
||||
const kubernetesApi = useApi(kubernetesApiRef);
|
||||
const kubernetesAuthProvidersApi = useApi(kubernetesAuthProvidersApiRef);
|
||||
const [kubernetesObjects, setKubernetesObjects] = useState<
|
||||
@@ -86,8 +89,7 @@ export const useKubernetesObjects = (entity: Entity): KubernetesObjects => {
|
||||
|
||||
useInterval(() => {
|
||||
getObjects();
|
||||
// TODO make configurable
|
||||
}, 10000);
|
||||
}, intervalMs);
|
||||
|
||||
return {
|
||||
kubernetesObjects,
|
||||
|
||||
Reference in New Issue
Block a user