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 9e29f9d8172e162e37e5187cb5729efe2dd45eaf..5c631ffeb6e6c4007028f95655df19047482b1b9 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 emit if value not changed', () => { + service.sendByManual.next(true); + service.sendByManual.next = jest.fn(); + + service.updateSendByManual(BescheidSendBy.MANUAL); + + expect(service.sendByManual.next).not.toHaveBeenCalled(); + }); + it('should emit on value change', () => { + 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 d9e05716a5c15264f7f5b671ecec6a8f61cc1ca1..b079362062868d5fd121503655948db80538f466 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 {