From d164cb9363632375ab89b2ce6287b09eb44df0ef Mon Sep 17 00:00:00 2001 From: Fabio Formosa Date: Thu, 3 Nov 2022 23:24:59 +0100 Subject: [PATCH] #57 fixed tests --- .../simple-trigger-config.component.html | 1 + .../simple-trigger-config.component.spec.ts | 45 ++++++++++++++----- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html index e2d1a35..892011c 100644 --- a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html +++ b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.html @@ -142,6 +142,7 @@ diff --git a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts index 9808192..e9c2978 100644 --- a/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts +++ b/quartz-manager-frontend/src/app/components/simple-trigger-config/simple-trigger-config.component.spec.ts @@ -79,25 +79,49 @@ describe('SimpleTriggerConfig', () => { function setMatSelectValueByIndex(componentDe: DebugElement, dropdownSelector: string, index: number) { const dropdownDe = componentDe.query(By.css(dropdownSelector)); - dropdownDe.triggerEventHandler('selectionChange', {value: 'MISFIRE_INSTRUCTION_FIRE_NOW'}); - const dropdownEl = dropdownDe.nativeElement; - dropdownEl.dispatchEvent(new Event('change')); + dropdownDe.nativeElement.click(); + fixture.detectChanges(); + const matOptionDe = componentDe.query(By.css('.mat-select-panel')).queryAll(By.css('.mat-option')); + matOptionDe[index].nativeElement.click(); fixture.detectChanges(); } + function openFormAndFillAllMandatoryFields() { + component.openTriggerForm(); + fixture.detectChanges(); + + const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/jobs`); + getJobsReq.flush(['TestJob']); + + const componentDe: DebugElement = fixture.debugElement; + + const submitButton = componentDe.query(By.css('form > button[color="primary"]')); + expect(submitButton.nativeElement.textContent.trim()).toEqual('Submit'); + expect(submitButton.nativeElement.getAttribute('disabled')).toEqual(''); + + setInputValue(componentDe, '#triggerName', 'test-trigger'); + expect(component.simpleTriggerReactiveForm.controls.triggerName.value).toEqual('test-trigger'); + expect(submitButton.nativeElement.getAttribute('disabled')).toEqual(''); + setMatSelectValueByIndex(componentDe, '#jobClass', 0); + expect(submitButton.nativeElement.getAttribute('disabled')).toEqual(''); + setMatSelectValueByIndex(componentDe, '#misfireInstruction', 0); + expect(component.simpleTriggerReactiveForm.controls.misfireInstruction.value).toEqual('MISFIRE_INSTRUCTION_FIRE_NOW'); + expect(submitButton.nativeElement.getAttribute('disabled')).toEqual(null); + } + + it('should enabled the submit only when the form is valid', () => { + openFormAndFillAllMandatoryFields(); + }); + it('should emit an event when a new trigger is submitted', () => { + const componentDe: DebugElement = fixture.debugElement; const mockTrigger = new Trigger(); mockTrigger.triggerKeyDTO = new TriggerKey('test-trigger', null); mockTrigger.jobDetailDTO = {jobClassName: 'TestJob', description: null}; mockTrigger.misfireInstruction = MisfireInstruction.MISFIRE_INSTRUCTION_FIRE_NOW; - component.openTriggerForm(); - fixture.detectChanges(); + openFormAndFillAllMandatoryFields(); - const componentDe: DebugElement = fixture.debugElement; - setInputValue(componentDe, '#triggerName', 'test-trigger'); - expect(component.simpleTriggerReactiveForm.controls.triggerName.value).toEqual('test-trigger'); - setInputValue(componentDe, '#jobClass', 'TestJob'); setInputValue(componentDe, '#repeatInterval', '2000'); expect(component.simpleTriggerReactiveForm.controls.triggerRecurrence.value.repeatInterval).toEqual(2000); setInputValue(componentDe, '#repeatCount', '100'); @@ -111,9 +135,6 @@ describe('SimpleTriggerConfig', () => { submitButton.nativeElement.click(); - const getJobsReq = httpTestingController.expectOne(`${CONTEXT_PATH}/jobs`); - getJobsReq.flush(['TestJob']); - const postSimpleTriggerReq = httpTestingController.expectOne(`${CONTEXT_PATH}/simple-triggers/test-trigger`); postSimpleTriggerReq.flush(mockTrigger);