diff --git a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts index ca145df371..e0f211bab6 100755 --- a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts @@ -993,6 +993,45 @@ describe('StartProcessCloudComponent', () => { expect(card).toBeTruthy(); }); + + }); + + describe('start button', () => { + beforeEach(() => { + component.name = 'NewProcess 1'; + component.appName = 'myApp'; + component.ngOnChanges({ appName: firstChange }); + component.processDefinitionList = fakeProcessDefinitions; + component.processDefinitionName = fakeProcessDefinitions[0].name; + }); + + it('start process button should be enabled when isLoading is false', async () => { + fixture.detectChanges(); + component.processForm.controls['processInstanceName'].setValue(fakeProcessDefinitions[0].id); + component.appName = 'test app name'; + component.isLoading = false; + fixture.detectChanges(); + await fixture.whenStable(); + + const startButton = fixture.debugElement.query(By.css('#button-start')); + expect(startButton).not.toBeNull(); + expect(component.disableStartButton()).toBeFalse(); + expect((startButton.nativeElement as HTMLButtonElement).disabled).toBeFalse(); + }); + + it('start process button should be disabled when isLoading is true', async () => { + fixture.detectChanges(); + component.processForm.controls['processInstanceName'].setValue(fakeProcessDefinitions[0].id); + component.appName = 'test app name'; + component.isLoading = true; + fixture.detectChanges(); + await fixture.whenStable(); + + const startButton = fixture.debugElement.query(By.css('#button-start')); + expect(startButton).not.toBeNull(); + expect(component.disableStartButton()).toBeTrue(); + expect((startButton.nativeElement as HTMLButtonElement).disabled).toBeTrue(); + }); }); describe('cancel process', () => { diff --git a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts index b21e88aa2f..9be1da0093 100755 --- a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts @@ -391,7 +391,7 @@ export class StartProcessCloudComponent implements OnChanges, OnInit, OnDestroy this.onDestroy$.complete(); } - disableStartButton() { - return !this.appName || !this.processDefinition.valid; + disableStartButton(): boolean { + return !this.appName || !this.processDefinition.valid || this.isLoading; } }