diff --git a/modules/ui/src/app/model/testrun-status.ts b/modules/ui/src/app/model/testrun-status.ts index a990a2a45..77473aa2b 100644 --- a/modules/ui/src/app/model/testrun-status.ts +++ b/modules/ui/src/app/model/testrun-status.ts @@ -72,6 +72,7 @@ export enum StatusOfTestrun { WaitingForDevice = 'Waiting for Device', Cancelled = 'Cancelled', Cancelling = 'Cancelling', + Stopping = 'Stopping', Failed = 'Failed', CompliantLimited = 'Compliant (Limited)', CompliantHigh = 'Compliant (High)', diff --git a/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.html b/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.html index a459e1744..2ba1a0664 100644 --- a/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.html +++ b/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.html @@ -66,6 +66,10 @@ *ngSwitchCase="StatusOfTestrun.Cancelling" [ngTemplateOutlet]="Cancelling"> + + { StatusOfTestrun.WaitingForDevice, StatusOfTestrun.Monitoring, StatusOfTestrun.Cancelling, + StatusOfTestrun.Stopping, ]; const statusesForCompletedSuccessClass = [ diff --git a/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.ts b/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.ts index 6c8055c86..a3458244e 100644 --- a/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.ts +++ b/modules/ui/src/app/pages/testrun/components/testrun-status-card/testrun-status-card.component.ts @@ -70,7 +70,9 @@ export class TestrunStatusCardComponent { } { return { progress: - this.isProgressStatus(status) || status === StatusOfTestrun.Cancelling, + this.isProgressStatus(status) || + status === StatusOfTestrun.Cancelling || + status === StatusOfTestrun.Stopping, 'completed-success': (result === ResultOfTestrun.Compliant && status === StatusOfTestrun.Complete) || @@ -92,6 +94,7 @@ export class TestrunStatusCardComponent { data.status === StatusOfTestrun.InProgress || data.status === StatusOfTestrun.Cancelled || data.status === StatusOfTestrun.Cancelling || + data.status === StatusOfTestrun.Stopping || data.finished ) { if ( @@ -126,6 +129,9 @@ export class TestrunStatusCardComponent { ) { return data.result!; } + if (data.status === StatusOfTestrun.Stopping) { + return StatusOfTestrun.Cancelling; + } return data.status; } diff --git a/modules/ui/src/app/pages/testrun/testrun.component.html b/modules/ui/src/app/pages/testrun/testrun.component.html index f55fee725..f9b95f948 100644 --- a/modules/ui/src/app/pages/testrun/testrun.component.html +++ b/modules/ui/src/app/pages/testrun/testrun.component.html @@ -20,6 +20,7 @@ isTestrunInProgress(data.status) || data.status === StatusOfTestrun.Cancelled || data.status === StatusOfTestrun.Cancelling || + data.status === StatusOfTestrun.Stopping || data.finished "> @@ -115,7 +116,8 @@ hasDevices === false || isAllDevicesOutdated === true || isTestrunInProgress(systemStatus?.status) || - systemStatus?.status === StatusOfTestrun.Cancelling + systemStatus?.status === StatusOfTestrun.Cancelling || + systemStatus?.status === StatusOfTestrun.Stopping " (click)="openTestRunModal(vm.testModules)" mat-flat-button> diff --git a/modules/ui/src/app/store/effects.spec.ts b/modules/ui/src/app/store/effects.spec.ts index 7ca894c27..952b9dbf6 100644 --- a/modules/ui/src/app/store/effects.spec.ts +++ b/modules/ui/src/app/store/effects.spec.ts @@ -37,7 +37,6 @@ import { MOCK_PROGRESS_DATA_WAITING_FOR_DEVICE, } from '../mocks/testrun.mock'; import { - fetchSystemStatus, fetchSystemStatusSuccess, setReports, setStatus, @@ -339,7 +338,6 @@ describe('Effects', () => { effects.onStopTestrun$.subscribe(() => { expect(testRunServiceMock.stopTestrun).toHaveBeenCalled(); - expect(dispatchSpy).toHaveBeenCalledWith(fetchSystemStatus()); done(); }); }); diff --git a/modules/ui/src/app/store/effects.ts b/modules/ui/src/app/store/effects.ts index 69c86f2bd..278cc1bb0 100644 --- a/modules/ui/src/app/store/effects.ts +++ b/modules/ui/src/app/store/effects.ts @@ -38,7 +38,6 @@ import { TestrunStatus, } from '../model/testrun-status'; import { - fetchSystemStatus, fetchSystemStatusSuccess, setIsTestingComplete, setReports, @@ -137,7 +136,8 @@ export class AppEffects { map(({ systemStatus }) => { const isInProgressDevice = this.testrunService.testrunInProgress(systemStatus?.status) || - systemStatus.status === StatusOfTestrun.Cancelling; + systemStatus.status === StatusOfTestrun.Cancelling || + systemStatus.status === StatusOfTestrun.Stopping; return AppActions.setDeviceInProgress({ device: isInProgressDevice ? systemStatus.device : null, }); @@ -163,14 +163,7 @@ export class AppEffects { return this.actions$.pipe( ofType(AppActions.setIsStopTestrun), switchMap(() => { - this.store.dispatch(stopInterval()); - return this.testrunService.stopTestrun().pipe( - map(stopped => { - if (stopped) { - this.store.dispatch(fetchSystemStatus()); - } - }) - ); + return this.testrunService.stopTestrun(); }) ); }, @@ -200,7 +193,10 @@ export class AppEffects { isTestingComplete: this.isTestrunFinished(systemStatus.status), }) ); - if (this.testrunService.testrunInProgress(systemStatus.status)) { + if ( + this.testrunService.testrunInProgress(systemStatus.status) || + systemStatus.status === StatusOfTestrun.Stopping + ) { this.pullingSystemStatusData(); this.fetchInternetConnection(); } else if (