From 7715e943434a9c69f1706268b9efb2aed378dcf3 Mon Sep 17 00:00:00 2001
From: "Zickermann, Jan" <jan.zickermann@dataport.de>
Date: Tue, 26 Mar 2024 16:21:45 +0100
Subject: [PATCH] OZG-4995 Move getting oeid items from state to service

---
 ...anisationseinheit-container.component.html |  2 +-
 ...rganisationseinheit-container.component.ts |  6 ++---
 .../more-item-button.component.spec.ts        |  1 -
 .../src/lib/user/user.service.spec.ts         | 22 ++++++++++++++++++-
 .../src/lib/user/user.service.ts              |  6 +++++
 5 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html
index 0db247eb4d..a8dbd91dd0 100644
--- a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html
+++ b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.html
@@ -13,7 +13,7 @@
 </admin-secondary-button>
 
 <admin-organisationseinheit-list
-  [organisationseinheitItems]="(organisationseinheitState$ | async).organisationseinheitItems"
+  [organisationseinheitItems]="organisationseinheitItems$ | async"
   (editOrganisationseinheit)="editOrganisationseinheit($event)"
   (deleteOrganisationseinheit)="deleteOrganisationseinheit($event)"
   data-test-id="organisationseinheit-list"
diff --git a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
index 6738fcfddc..e1dbd1bde2 100644
--- a/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
+++ b/alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-container.component.ts
@@ -1,5 +1,5 @@
 import { Component, OnInit, ViewChild } from '@angular/core';
-import { Organisationseinheit, OrganisationseinheitState } from '../../user/user.model';
+import { Organisationseinheit } from '../../user/user.model';
 import { UserService } from '../../user/user.service';
 import { Observable } from 'rxjs';
 import { OrganisationseinheitFormComponent } from './organisationseinheit-form/organisationseinheit-form.component';
@@ -9,7 +9,7 @@ import { OrganisationseinheitFormComponent } from './organisationseinheit-form/o
   templateUrl: './organisationseinheit-container.component.html',
 })
 export class OrganisationseinheitContainerComponent implements OnInit {
-  organisationseinheitState$: Observable<OrganisationseinheitState>;
+  organisationseinheitItems$: Observable<Organisationseinheit[]>;
 
   @ViewChild(OrganisationseinheitFormComponent)
   private form!: OrganisationseinheitFormComponent;
@@ -17,7 +17,7 @@ export class OrganisationseinheitContainerComponent implements OnInit {
   constructor(private userService: UserService) {}
 
   ngOnInit(): void {
-    this.organisationseinheitState$ = this.userService.getOrganisationseinheitState();
+    this.organisationseinheitItems$ = this.userService.getOrganisationseinheitItems();
   }
 
   openDialogForNewGroup() {
diff --git a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts b/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts
index 1ecddaba7b..eb37c9e2e7 100644
--- a/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts
+++ b/alfa-client/libs/admin-settings/src/lib/shared/more-menu/more-item-button/more-item-button.component.spec.ts
@@ -33,7 +33,6 @@ describe('MoreItemButtonComponent', () => {
   });
 
   it.each([false, true])('should use disabled "%s"', (disabled) => {
-    const text: string = 'test-text';
     component.disabled = disabled;
 
     fixture.detectChanges();
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.service.spec.ts b/alfa-client/libs/admin-settings/src/lib/user/user.service.spec.ts
index 70da660800..f9fd8ad57e 100644
--- a/alfa-client/libs/admin-settings/src/lib/user/user.service.spec.ts
+++ b/alfa-client/libs/admin-settings/src/lib/user/user.service.spec.ts
@@ -1,11 +1,15 @@
 import { UserService } from './user.service';
 import { UserRepository } from './user.repository.service';
 import { mock, Mock, useFromMock } from '@alfa-client/test-utils';
-import { createOrganisationseinheit } from '../../../test/keycloak/keycloak';
+import {
+  createOrganisationseinheit,
+  createOrganisationseinheitState,
+} from '../../../test/keycloak/keycloak';
 import { firstValueFrom, lastValueFrom, Observable, of } from 'rxjs';
 import { Organisationseinheit } from './user.model';
 import { cold } from 'jest-marbles';
 import { fakeAsync, tick } from '@angular/core/testing';
+import { singleCold } from '../../../../tech-shared/src/lib/resource/marbles';
 
 describe('UserService', () => {
   let service: UserService;
@@ -298,4 +302,20 @@ describe('UserService', () => {
       expect(tapFunction).toHaveBeenCalledWith(value);
     }));
   });
+
+  describe('get organisationseinheit items', () => {
+    it('should return items of state', () => {
+      const organisationseinheitItems: Organisationseinheit[] = [
+        createOrganisationseinheit(),
+        createOrganisationseinheit(),
+      ];
+      service.getOrganisationseinheitState = jest
+        .fn()
+        .mockReturnValue(singleCold(createOrganisationseinheitState(organisationseinheitItems)));
+
+      const itemsObservable: Observable<Organisationseinheit[]> =
+        service.getOrganisationseinheitItems();
+      expect(itemsObservable).toBeObservable(singleCold(organisationseinheitItems));
+    });
+  });
 });
diff --git a/alfa-client/libs/admin-settings/src/lib/user/user.service.ts b/alfa-client/libs/admin-settings/src/lib/user/user.service.ts
index bed9ae6491..21b5dfc8eb 100644
--- a/alfa-client/libs/admin-settings/src/lib/user/user.service.ts
+++ b/alfa-client/libs/admin-settings/src/lib/user/user.service.ts
@@ -134,4 +134,10 @@ export class UserService {
       loading,
     });
   }
+
+  public getOrganisationseinheitItems(): Observable<Organisationseinheit[]> {
+    return this.getOrganisationseinheitState().pipe(
+      map((state: OrganisationseinheitState) => state.organisationseinheitItems),
+    );
+  }
 }
-- 
GitLab