chore(ui): throttle tree updates (#21578)
This commit is contained in:
parent
e45a496850
commit
34efbea4c5
|
|
@ -357,6 +357,22 @@ declare global {
|
||||||
|
|
||||||
let receiver: TeleReporterReceiver | undefined;
|
let receiver: TeleReporterReceiver | undefined;
|
||||||
|
|
||||||
|
let throttleTimer: NodeJS.Timeout | undefined;
|
||||||
|
let throttleData: { rootSuite: Suite, progress: Progress } | undefined;
|
||||||
|
const throttledAction = () => {
|
||||||
|
clearTimeout(throttleTimer);
|
||||||
|
throttleTimer = undefined;
|
||||||
|
updateRootSuite(throttleData!.rootSuite, throttleData!.progress);
|
||||||
|
};
|
||||||
|
|
||||||
|
const throttleUpdateRootSuite = (rootSuite: Suite, progress: Progress, immediate = false) => {
|
||||||
|
throttleData = { rootSuite, progress };
|
||||||
|
if (immediate)
|
||||||
|
throttledAction();
|
||||||
|
else if (!throttleTimer)
|
||||||
|
throttleTimer = setTimeout(throttledAction, 250);
|
||||||
|
};
|
||||||
|
|
||||||
const refreshRootSuite = (eraseResults: boolean) => {
|
const refreshRootSuite = (eraseResults: boolean) => {
|
||||||
if (!eraseResults) {
|
if (!eraseResults) {
|
||||||
sendMessageNoReply('list');
|
sendMessageNoReply('list');
|
||||||
|
|
@ -378,11 +394,15 @@ const refreshRootSuite = (eraseResults: boolean) => {
|
||||||
progress.passed = 0;
|
progress.passed = 0;
|
||||||
progress.failed = 0;
|
progress.failed = 0;
|
||||||
progress.skipped = 0;
|
progress.skipped = 0;
|
||||||
updateRootSuite(rootSuite, progress);
|
throttleUpdateRootSuite(rootSuite, progress, true);
|
||||||
|
},
|
||||||
|
|
||||||
|
onEnd: () => {
|
||||||
|
throttleUpdateRootSuite(rootSuite, progress, true);
|
||||||
},
|
},
|
||||||
|
|
||||||
onTestBegin: () => {
|
onTestBegin: () => {
|
||||||
updateRootSuite(rootSuite, progress);
|
throttleUpdateRootSuite(rootSuite, progress);
|
||||||
},
|
},
|
||||||
|
|
||||||
onTestEnd: (test: TestCase) => {
|
onTestEnd: (test: TestCase) => {
|
||||||
|
|
@ -392,7 +412,7 @@ const refreshRootSuite = (eraseResults: boolean) => {
|
||||||
++progress.failed;
|
++progress.failed;
|
||||||
else
|
else
|
||||||
++progress.passed;
|
++progress.passed;
|
||||||
updateRootSuite(rootSuite, progress);
|
throttleUpdateRootSuite(rootSuite, progress);
|
||||||
// This will update selected trace viewer.
|
// This will update selected trace viewer.
|
||||||
updateStepsProgress();
|
updateStepsProgress();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue