From 7bb27bc762b8bcfd0ec497ab0d8fe82f847403e7 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 18 Jul 2024 11:49:16 +0200 Subject: [PATCH] OZG-6201 Fix send manually not closing dialog --- .../bescheiden.formservice.spec.ts | 20 +++++++++++++++++-- .../bescheiden.formservice.ts | 17 ++++++++-------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts index 9e29f9d817..5cadc110ce 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.formservice.spec.ts @@ -9,10 +9,10 @@ import { import { BinaryFileResource } from '@alfa-client/binary-file-shared'; import { CommandLinkRel, CommandResource } from '@alfa-client/command-shared'; import { - createStateResource, EMPTY_STRING, - formatForDatabase, StateResource, + createStateResource, + formatForDatabase, } from '@alfa-client/tech-shared'; import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; @@ -114,6 +114,22 @@ describe('BescheidenFormService', () => { expect(service.sendByManual.value).toBeFalsy(); }); + it('should not call .next() if current and next values both are true', () => { + service.sendByManual.next(true); + service.sendByManual.next = jest.fn(); + + service.updateSendByManual(BescheidSendBy.MANUAL); + + expect(service.sendByManual.next).not.toHaveBeenCalled(); + }); + it('should call .next() if current and next values differ', () => { + service.sendByManual.next(false); + service.sendByManual.next = jest.fn(); + + service.updateSendByManual(BescheidSendBy.MANUAL); + + expect(service.sendByManual.next).toHaveBeenCalled(); + }); }); describe('initializeFormChanges', () => { 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 d9e05716a5..b079362062 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 @@ -10,14 +10,14 @@ import { BinaryFileResource } from '@alfa-client/binary-file-shared'; import { CommandResource, tapOnCommandSuccessfullyDone } from '@alfa-client/command-shared'; import { AbstractFormService, - convertToBoolean, EMPTY_STRING, - formatForDatabase, HttpError, + StateResource, + convertToBoolean, + formatForDatabase, isLoaded, isNotEmpty, isNotNil, - StateResource, } from '@alfa-client/tech-shared'; import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; import { Injectable, OnDestroy } from '@angular/core'; @@ -28,18 +28,18 @@ import { UntypedFormControl, UntypedFormGroup, } from '@angular/forms'; -import { getUrl, hasLink, Resource, ResourceUri } from '@ngxp/rest'; +import { Resource, ResourceUri, getUrl, hasLink } from '@ngxp/rest'; import { isEmpty, isNil, isUndefined } from 'lodash-es'; import { BehaviorSubject, + Observable, + Subject, + Subscription, combineLatest, filter, first, map, - Observable, startWith, - Subject, - Subscription, } from 'rxjs'; @Injectable() @@ -92,7 +92,8 @@ export class BescheidenFormService extends AbstractFormService implements OnDest } updateSendByManual(sendBy: BescheidSendBy): void { - this.sendByManual.next(sendBy === BescheidSendBy.MANUAL); + const isSendByManual = sendBy === BescheidSendBy.MANUAL; + if (isSendByManual !== this.sendByManual.value) this.sendByManual.next(isSendByManual); } initializeFormChanges(): void { -- GitLab