From 3099a4ba83b0c4b0bbe19611ef2485881bea16e4 Mon Sep 17 00:00:00 2001 From: Albert <Albert.Bruns@mgm-tp.com> Date: Sat, 12 Apr 2025 00:26:32 +0200 Subject: [PATCH] OZG-7974 small fix --- .../src/lib/keycloak-formservice.spec.ts | 11 +++++++++++ .../keycloak-shared/src/lib/keycloak-formservice.ts | 7 ++++++- .../user/src/lib/user-form/user.formservice.spec.ts | 10 ++++++++++ .../admin/user/src/lib/user-form/user.formservice.ts | 9 +++++---- 4 files changed, 32 insertions(+), 5 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 6e71337e1f..16736b029c 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 @@ -180,6 +180,7 @@ describe('KeycloakFormService', () => { service._patchConfig = patchConfig; service._load = jest.fn().mockReturnValue(singleHot(dummyStateResource)); service._patchIfLoaded = jest.fn(); + service._doAfterPatch = jest.fn(); }); it('should call load', () => { @@ -196,6 +197,14 @@ describe('KeycloakFormService', () => { expect(service._patchIfLoaded).toHaveBeenCalledWith(dummyStateResource); }); + it('should call do after patch', () => { + service._load = jest.fn().mockReturnValue(of(dummyStateResource)); + + service._initLoading().subscribe(); + + expect(service._doAfterPatch).toHaveBeenCalledWith(dummyStateResource); + }); + it('should return loaded value', () => { const loadedDummyStateResource: Observable<StateResource<Dummy>> = service._initLoading(); @@ -777,6 +786,8 @@ export class TestKeycloakFormService extends KeycloakFormService<Dummy> { return TestKeycloakFormService.LOAD_OBSERVABLE(); } + _doAfterPatch(stateResource: StateResource<Dummy>) {} + _doSubmit(): Observable<StateResource<Dummy>> { return TestKeycloakFormService.SUBMIT_OBSERVABLE(); } 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 e7de668f01..c8287dbaba 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 @@ -69,11 +69,16 @@ export abstract class KeycloakFormService<T> { } _initLoading(): Observable<StateResource<T>> { - return this._load(this._patchConfig.id).pipe(tap((stateResource: StateResource<T>) => this._patchIfLoaded(stateResource))); + return this._load(this._patchConfig.id).pipe( + tap((stateResource: StateResource<T>) => this._patchIfLoaded(stateResource)), + tap((stateResource: StateResource<T>) => this._doAfterPatch(stateResource)), + ); } abstract _load(id: string): Observable<StateResource<T>>; + abstract _doAfterPatch(stateResource: StateResource<T>): void; + _patchIfLoaded(stateResource: StateResource<T>): void { if (isLoaded(stateResource)) this._patch(stateResource.resource); } 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 71ea6569bd..452e72c34a 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 @@ -168,6 +168,16 @@ describe('UserFormService', () => { }); }); + describe('doAfterPatch', () => { + it('should call _updateAlfaRoleStates', () => { + service._updateAlfaRoleStates = jest.fn(); + + service._doAfterPatch(createStateResource(createUser())); + + expect(service._updateAlfaRoleStates).toHaveBeenCalled(); + }); + }); + describe('initOrganisationsEinheiten', () => { beforeEach(() => { service._addOrganisationsEinheitenToForm = jest.fn(); 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 2e717f6912..616a0e9553 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 @@ -95,10 +95,11 @@ export class UserFormService extends KeycloakFormService<User> { } _load(id: string): Observable<StateResource<User>> { - return this.userService.getUserById(id).pipe( - filter(isLoaded), - tap(() => this._updateAlfaRoleStates()), - ); + return this.userService.getUserById(id); + } + + _doAfterPatch(stateResource: StateResource<User>): void { + this._updateAlfaRoleStates(); } _initForm(): UntypedFormGroup { -- GitLab