From dd758fcf8f5ca626c08b36d35c2651a1eaa0a427 Mon Sep 17 00:00:00 2001
From: Albert <Albert.Bruns@mgm-tp.com>
Date: Wed, 26 Feb 2025 15:23:44 +0100
Subject: [PATCH] OZG-7620 cr anmerkungen

---
 .../src/lib/keycloak-formservice.spec.ts      | 20 --------------
 .../src/lib/keycloak-formservice.ts           |  6 -----
 ...-delete-dialog-container.component.spec.ts | 26 +++++++++++++------
 .../user-delete-dialog-container.component.ts |  6 +++--
 .../lib/user-form/user.formservice.spec.ts    | 22 ----------------
 .../src/lib/user-form/user.formservice.ts     |  4 ---
 6 files changed, 22 insertions(+), 62 deletions(-)

diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
index 41240e84f5..6fe0a332ba 100644
--- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
+++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.spec.ts
@@ -201,26 +201,6 @@ describe('KeycloakFormService', () => {
     });
   });
 
-  describe('delete', () => {
-    const dummyStateResource: StateResource<Dummy> = createStateResource(createDummy());
-
-    beforeEach(() => {
-      service._doDelete = jest.fn().mockReturnValue(singleHot(dummyStateResource));
-    });
-
-    it('should call do delete', () => {
-      service.delete();
-
-      expect(service._doDelete).toHaveBeenCalled();
-    });
-
-    it('should return delete response', () => {
-      const deleteResponse: Observable<StateResource<Dummy>> = service.delete();
-
-      expect(deleteResponse).toBeObservable(singleCold(dummyStateResource));
-    });
-  });
-
   describe('patch', () => {
     const valueToPatch: Dummy = { name: 'newName' };
     let patchFormSpy: jest.SpyInstance;
diff --git a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
index bc8b2ea245..49a2e6c84e 100644
--- a/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
+++ b/alfa-client/libs/admin/keycloak-shared/src/lib/keycloak-formservice.ts
@@ -75,12 +75,6 @@ export abstract class KeycloakFormService<T> {
 
   abstract _doSubmit(): Observable<StateResource<T>>;
 
-  public delete(): Observable<StateResource<unknown>> {
-    return this._doDelete();
-  }
-
-  abstract _doDelete(): Observable<StateResource<unknown>>;
-
   _patch(valueToPatch: T): void {
     this.form.reset();
 
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts
index 7d31c2336f..08d0be421e 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.spec.ts
@@ -1,6 +1,7 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { ROUTES } from '@admin-client/shared';
+import { UserService } from '@admin-client/user-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
 import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
 import { dispatchEventFromFixture, getMockComponent, Mock, mock } from '@alfa-client/test-utils';
@@ -20,10 +21,12 @@ describe('UserFormDeleteDialogComponent', () => {
   const deletDialogLocator: string = getDataTestIdOf('delete-dialog');
 
   let formService: Mock<UserFormService>;
+  let userService: Mock<UserService>;
   let navigationService: Mock<NavigationService>;
 
   beforeEach(async () => {
     formService = mock(UserFormService);
+    userService = mock(UserService);
     navigationService = mock(NavigationService);
     formService = {
       ...mock(UserFormService),
@@ -35,6 +38,7 @@ describe('UserFormDeleteDialogComponent', () => {
       imports: [UserDeleteDialogContainerComponent, UserDeleteDialogComponent],
       providers: [
         { provide: UserFormService, useValue: formService },
+        { provide: UserService, useValue: userService },
         { provide: NavigationService, useValue: navigationService },
       ],
     }).compileComponents();
@@ -73,29 +77,35 @@ describe('UserFormDeleteDialogComponent', () => {
 
   describe('component', () => {
     describe('deleteUser', () => {
+      const userId: string = faker.string.uuid();
       const loadingStateResource: StateResource<unknown> = createEmptyStateResource(true);
       const loadingStateResource$: Observable<StateResource<unknown>> = of(loadingStateResource);
       const loadingDoneStateResource$: Observable<StateResource<unknown>> = of(createEmptyStateResource());
 
-      it('should call formService.delete', () => {
-        formService.delete.mockReturnValue(loadingStateResource$);
+      beforeEach(() => {
+        userService.delete = jest.fn().mockReturnValue(loadingStateResource$);
+        formService.getId = jest.fn().mockReturnValue(userId);
+      });
 
+      it('should call formService getId', () => {
         component.deleteUser();
 
-        expect(formService.delete).toHaveBeenCalled();
+        expect(formService.getId).toHaveBeenCalled();
       });
 
-      it('should set deleteUserStateResource$', () => {
-        formService.delete.mockReturnValue(loadingStateResource$);
+      it('should call userService delete', () => {
+        component.deleteUser();
 
+        expect(userService.delete).toHaveBeenCalledWith(userId);
+      });
+
+      it('should set deleteUserStateResource$', () => {
         component.deleteUser();
 
         expect(component.deleteUserStateResource$).toBeObservable(singleColdCompleted(loadingStateResource));
       });
 
       it('should not navigate on loading', () => {
-        formService.delete.mockReturnValue(loadingStateResource$);
-
         component.deleteUser();
         component.deleteUserStateResource$.subscribe();
 
@@ -103,7 +113,7 @@ describe('UserFormDeleteDialogComponent', () => {
       });
 
       it('should navigate on delete success', () => {
-        formService.delete.mockReturnValue(loadingDoneStateResource$);
+        userService.delete.mockReturnValue(loadingDoneStateResource$);
 
         component.deleteUser();
         component.deleteUserStateResource$.subscribe();
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts
index a582fc6598..fb3f0e0a9a 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-delete-dialog-container.component.ts
@@ -1,4 +1,5 @@
 import { ROUTES } from '@admin-client/shared';
+import { UserService } from '@admin-client/user-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
 import { createEmptyStateResource, isNotLoading, StateResource } from '@alfa-client/tech-shared';
 import { AsyncPipe } from '@angular/common';
@@ -15,13 +16,14 @@ import { UserDeleteDialogComponent } from './user-delete-dialog/user-delete-dial
 })
 export class UserDeleteDialogContainerComponent {
   public readonly formService = inject(UserFormService);
+  public readonly userService = inject(UserService);
   public readonly navigationService = inject(NavigationService);
 
   public deleteUserStateResource$: Observable<StateResource<unknown>> = of(createEmptyStateResource());
 
   public deleteUser(): void {
-    this.deleteUserStateResource$ = this.formService
-      .delete()
+    this.deleteUserStateResource$ = this.userService
+      .delete(this.formService.getId())
       .pipe(tap((state: StateResource<unknown>) => this.navigateOnDeleteSuccess(state)));
   }
 
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
index 7b340b7fff..e4f349008d 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.spec.ts
@@ -358,28 +358,6 @@ describe('UserFormService', () => {
     }));
   });
 
-  describe('doDelete', () => {
-    const id: string = faker.string.uuid();
-    const stateResource: StateResource<unknown> = createEmptyStateResource();
-
-    beforeEach(() => {
-      formService._patchConfig = { id, doPatch: true };
-      service.delete.mockReturnValue(of(stateResource));
-    });
-
-    it('should call service delete', () => {
-      formService._doDelete();
-
-      expect(service.delete).toHaveBeenCalledWith(id);
-    });
-
-    it('should return empty stateResource', () => {
-      const result: Observable<StateResource<unknown>> = formService._doDelete();
-
-      expect(result).toBeObservable(singleColdCompleted(stateResource));
-    });
-  });
-
   describe('createOrSave', () => {
     const user: User = createUser();
 
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
index da268c079e..a456872659 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
@@ -206,10 +206,6 @@ export class UserFormService extends KeycloakFormService<User> implements OnDest
     );
   }
 
-  _doDelete(): Observable<StateResource<unknown>> {
-    return this.userService.delete(this._patchConfig.id);
-  }
-
   _createOrSave(user: User): Observable<StateResource<User>> {
     if (this.isPatch()) {
       return this.userService.save({
-- 
GitLab