Skip to content

Commit 1eb3453

Browse files
authored
fix(frontend): add polling mechanism for test run (#2489)
1 parent 266a0e7 commit 1eb3453

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

web/src/providers/TestRun/TestRun.provider.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {noop} from 'lodash';
2-
import {createContext, useCallback, useContext, useMemo} from 'react';
2+
import {createContext, useCallback, useContext, useEffect, useMemo, useState} from 'react';
33
import {useGetRunByIdQuery, useGetRunEventsQuery, useStopRunMutation} from 'redux/apis/TraceTest.api';
4-
import TestRun from 'models/TestRun.model';
4+
import TestRun, {isRunStateFinished} from 'models/TestRun.model';
55
import TestRunEvent from 'models/TestRunEvent.model';
66
import TestProvider from '../Test';
77

@@ -29,8 +29,11 @@ interface IProps {
2929

3030
export const useTestRun = () => useContext(Context);
3131

32+
const POLLING_INTERVAL = 5000;
33+
3234
const TestRunProvider = ({children, testId, runId = ''}: IProps) => {
33-
const {data: run, isError} = useGetRunByIdQuery({testId, runId}, {skip: !runId});
35+
const [pollingInterval, setPollingInterval] = useState<number | undefined>(POLLING_INTERVAL);
36+
const {data: run, isError} = useGetRunByIdQuery({testId, runId}, {skip: !runId, pollingInterval});
3437
const {data: runEvents = []} = useGetRunEventsQuery({testId, runId}, {skip: !runId});
3538
const [stopRunAction, {isLoading: isLoadingStop}] = useStopRunMutation();
3639

@@ -43,6 +46,11 @@ const TestRunProvider = ({children, testId, runId = ''}: IProps) => {
4346
[run, isError, isLoadingStop, runEvents, stopRun]
4447
);
4548

49+
useEffect(() => {
50+
const shouldStopPolling = run?.state && isRunStateFinished(run.state);
51+
setPollingInterval(shouldStopPolling ? undefined : POLLING_INTERVAL);
52+
}, [run?.state]);
53+
4654
return run ? (
4755
<Context.Provider value={value}>
4856
<TestProvider testId={testId} version={run.testVersion}>

0 commit comments

Comments
 (0)