diff --git a/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.html b/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.html
index e5d0ae0cb..12821764d 100644
--- a/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.html
+++ b/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.html
@@ -76,6 +76,13 @@
(click)="onSaveClick(ProfileStatus.DRAFT)">
Save Draft
+
{
});
});
});
+
+ describe('Discard button', () => {
+ beforeEach(() => {
+ fillForm(component);
+ fixture.detectChanges();
+ });
+
+ it('should be enabled when form is filled', () => {
+ const discardButton = compiled.querySelector(
+ '.discard-button'
+ ) as HTMLButtonElement;
+
+ expect(discardButton.disabled).toBeFalse();
+ });
+
+ it('should emit discard', () => {
+ const emitSpy = spyOn(component.discard, 'emit');
+ const discardButton = compiled.querySelector(
+ '.discard-button'
+ ) as HTMLButtonElement;
+ discardButton.click();
+
+ expect(emitSpy).toHaveBeenCalled();
+ });
+ });
});
describe('Class tests', () => {
diff --git a/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.ts b/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.ts
index a15867ae7..2147c994a 100644
--- a/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.ts
+++ b/modules/ui/src/app/pages/risk-assessment/profile-form/profile-form.component.ts
@@ -105,6 +105,7 @@ export class ProfileFormComponent implements OnInit {
}
@Output() saveProfile = new EventEmitter();
+ @Output() discard = new EventEmitter();
constructor(
private deviceValidators: DeviceValidators,
private profileValidators: ProfileValidators,
@@ -241,6 +242,10 @@ export class ProfileFormComponent implements OnInit {
}
}
+ onDiscardClick() {
+ this.discard.emit();
+ }
+
private buildResponseFromForm(
initialQuestions: ProfileFormat[],
profileForm: FormGroup,
diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html
index 2f11ea76b..1c5516add 100644
--- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html
+++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.html
@@ -25,9 +25,8 @@ Risk assessment
[selectedProfile]="vm.selectedProfile"
[profiles]="vm.profiles"
[profileFormat]="vm.profileFormat"
- (saveProfile)="
- saveProfileClicked($event, vm.selectedProfile)
- ">
+ (saveProfile)="saveProfileClicked($event, vm.selectedProfile)"
+ (discard)="discard()">
diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts
index e2aa6332e..e6b7f5f44 100644
--- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts
+++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.spec.ts
@@ -284,6 +284,28 @@ describe('RiskAssessmentComponent', () => {
}));
});
});
+
+ describe('#discard', () => {
+ beforeEach(() => {
+ component.discard();
+ });
+
+ it('should call setFocusOnCreateButton', () => {
+ expect(
+ mockRiskAssessmentStore.setFocusOnCreateButton
+ ).toHaveBeenCalled();
+ });
+
+ it('should close the form', () => {
+ expect(component.isOpenProfileForm).toBeFalse();
+ });
+
+ it('should update selected profile', () => {
+ expect(
+ mockRiskAssessmentStore.updateSelectedProfile
+ ).toHaveBeenCalledWith(null);
+ });
+ });
});
});
diff --git a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts
index 503d87a52..77e6c32d3 100644
--- a/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts
+++ b/modules/ui/src/app/pages/risk-assessment/risk-assessment.component.ts
@@ -105,6 +105,12 @@ export class RiskAssessmentComponent implements OnInit, OnDestroy {
}
}
+ discard() {
+ this.isOpenProfileForm = false;
+ this.store.updateSelectedProfile(null);
+ this.store.setFocusOnCreateButton();
+ }
+
trackByIndex = (index: number): number => {
return index;
};