From 91befd6d79f3fe708fefff44bb24a7fdc8659942 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 13 Mar 2024 16:52:42 +0100
Subject: [PATCH] OZG-5009 encapsulate state and add missing test

---
 .../bescheiden.formservice.ts                   | 17 +++++++++++++----
 .../vorgang-detail-bescheiden.component.spec.ts | 12 ++++++++++--
 .../vorgang-detail-bescheiden.component.ts      |  4 +++-
 3 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts
index f0f9c250e1..f5655ad65e 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.ts
@@ -1,15 +1,15 @@
 import { Bescheid, BescheidService } from '@alfa-client/bescheid-shared';
 import {
   AbstractFormService,
-  StateResource,
   asBoolean,
   formatForDatabase,
+  StateResource,
 } from '@alfa-client/tech-shared';
 import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { Injectable } from '@angular/core';
 import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
 import { isNil } from 'lodash-es';
-import { BehaviorSubject, Observable, map, startWith } from 'rxjs';
+import { BehaviorSubject, map, Observable, startWith } from 'rxjs';
 
 @Injectable()
 export class BescheidenFormService extends AbstractFormService {
@@ -19,7 +19,7 @@ export class BescheidenFormService extends AbstractFormService {
 
   public readonly bescheidChanges$: BehaviorSubject<Bescheid>;
 
-  public vorgang: VorgangWithEingangResource;
+  private vorgangWithEingangResource: VorgangWithEingangResource;
 
   constructor(
     formBuilder: UntypedFormBuilder,
@@ -65,7 +65,10 @@ export class BescheidenFormService extends AbstractFormService {
   }
 
   protected doSubmit(): Observable<StateResource<any>> {
-    return this.bescheidService.createBescheidDraft(this.vorgang, this.getValue());
+    return this.bescheidService.createBescheidDraft(
+      this.vorgangWithEingangResource,
+      this.getValue(),
+    );
   }
 
   public getValue(): Bescheid {
@@ -79,4 +82,10 @@ export class BescheidenFormService extends AbstractFormService {
   public getBescheidChanges(): Observable<Bescheid> {
     return this.bescheidChanges$.asObservable();
   }
+
+  public setVorgangWithEingangResource(
+    vorgangWithEingangResource: VorgangWithEingangResource,
+  ): void {
+    this.vorgangWithEingangResource = vorgangWithEingangResource;
+  }
 }
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
index 24d6b1d8c2..27efdfe3a1 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.spec.ts
@@ -75,12 +75,20 @@ describe('VorgangDetailBescheidenComponent', () => {
   });
 
   describe('ngOnInit', () => {
+    it('should set vorgang on form service', () => {
+      const setVorgangWithEingangResource = (formService.setVorgangWithEingangResource = jest.fn());
+
+      component.ngOnInit();
+
+      expect(setVorgangWithEingangResource).toBeCalledWith(vorgangWithEingangResource);
+    });
+
     it('should patch values', () => {
-      const mock = (formService.patchValues = jest.fn());
+      const patchValues = (formService.patchValues = jest.fn());
 
       component.ngOnInit();
 
-      expect(mock).toBeCalledWith(bescheidDraftResource);
+      expect(patchValues).toBeCalledWith(bescheidDraftResource);
     });
   });
 
diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
index 9acc3dbab2..f4fb2cc67c 100644
--- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
+++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component.ts
@@ -24,7 +24,9 @@ export class VorgangDetailBescheidenComponent implements OnInit {
   }
 
   ngOnInit(): void {
-    this.formService.vorgang = this.dialogRef.config.data.vorgangWithEingangResource;
+    this.formService.setVorgangWithEingangResource(
+      this.dialogRef.config.data.vorgangWithEingangResource,
+    );
     this.formService.patchValues(this.bescheidDraftResource);
   }
 
-- 
GitLab