diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.html index 8861db5df5fd7745a5061fecd7fead4301583384..2843835f2a178e1e40d221a7bc8b4d14bcca81ea 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.html +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/antrag-bescheiden/form/bescheid-wizard-antrag-bescheiden-form.component.html @@ -42,7 +42,7 @@ ><ods-close-icon size="large" class="fill-abgelehnt"></ods-close-icon> </ods-radio-button-card> </div> - <div class="flex w-full"> + <div class="flex"> <ozgcloud-date-editor [formControlName]="formServiceClass.FIELD_BESCHIEDEN_AM" label="am" diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.html index 178a0f574555303c350994f4696c6e9e42f1fc52..9a8e66f72ed0f149c6b0be0d67562d5ca86ad5c6 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.html +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/bescheid-wizard.component.html @@ -31,7 +31,7 @@ ></ozgcloud-spinner> <form [formGroup]="formService.form" class="h-full"> - <div class="grid h-full"> + <div class="h-full"> @switch (activeStep) { @case (bescheidWizardStep.AntragBescheiden) { <alfa-bescheid-wizard-antrag-bescheiden-container diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.html index b9789fd188dee1479e529429092e9fefd574024a..9d885f59c02d12b386c35498c5a74c5a62f5ddea 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.html +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.html @@ -23,39 +23,32 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<div - class="relative m-6 max-w-2xl rounded-lg bg-modalBg p-6 shadow-xl" - data-test-id="bescheid-close-dialog" -> +<div class="relative m-6 max-w-2xl rounded-lg bg-modalBg p-6 shadow-xl" data-test-id="bescheid-close-dialog"> <div class="flex flex-col gap-6"> <div> <h4 class="text-lg font-medium text-primary">Bescheiderstellung abbrechen</h4> </div> <div class="grow"> - <p class="text-base"> - Soll der Bescheid-Entwurf zur späteren Bearbeitung gespeichert oder verworfen werden? - </p> + <p class="text-base">Soll der Bescheid-Entwurf zur späteren Bearbeitung gespeichert oder verworfen werden?</p> </div> <div class="flex gap-4"> - <ozgcloud-stroked-button-with-spinner + <ods-button-with-spinner [stateResource]="saveStateResource$ | async" (clickEmitter)="save()" - data-test-id="bescheiderstellung-abbrechen-entwurf-speichern" + dataTestId="bescheiderstellung-abbrechen-entwurf-speichern" text="Entwurf speichern" - type="submit" - icon="check" > - </ozgcloud-stroked-button-with-spinner> - <ozgcloud-stroked-button-with-spinner + <ods-check-icon class="fill-whitetext" icon></ods-check-icon> + </ods-button-with-spinner> + <ods-button-with-spinner [stateResource]="deleteStateResource$ | async" (clickEmitter)="cancel()" - data-test-id="bescheiderstellung-abbrechen-entwurf-verwerfen" + variant="outline" + dataTestId="bescheiderstellung-abbrechen-entwurf-verwerfen" text="Verwerfen" - color="" - icon="clear" - type="submit" > - </ozgcloud-stroked-button-with-spinner> + <ods-close-icon class="fill-primary" icon></ods-close-icon> + </ods-button-with-spinner> </div> </div> </div> diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts index 5dfde26e4da2a928be6046e7c14d50b60790900a..47aa453fd30472816900af6f9f3c15c74063a05d 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/cancel-dialog-container/bescheid-wizard-cancel-dialog-container.component.spec.ts @@ -23,28 +23,40 @@ */ import { CommandResource } from '@alfa-client/command-shared'; import { createErrorStateResource, StateResource } from '@alfa-client/tech-shared'; -import { createDialogRefMock, DialogRefMock, existsAsHtmlElement, getElementComponentFromFixtureByCss, Mock, mock, triggerEvent, } from '@alfa-client/test-utils'; -import { OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui'; +import { + createDialogRefMock, + DialogRefMock, + existsAsHtmlElement, + getElementComponentFromFixtureByCss, + Mock, + mock, + triggerEvent, +} from '@alfa-client/test-utils'; import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { expect } from '@jest/globals'; +import { ButtonWithSpinnerComponent } from '@ods/component'; +import { CheckIconComponent, CloseIconComponent } from '@ods/system'; +import { BescheidService2 } from 'libs/bescheid-shared/src/lib/bescheid2.service'; +import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid'; +import { createCommandStateResource, createSuccessfullyDoneCommandStateResource } from 'libs/command-shared/test/command'; +import { getDataTestIdAttributeOf } from 'libs/tech-shared/test/data-test'; +import { createApiError } from 'libs/tech-shared/test/error'; +import { singleColdCompleted } from 'libs/tech-shared/test/marbles'; import { MockComponent } from 'ng-mocks'; import { EMPTY, of } from 'rxjs'; -import { BescheidService2 } from '../../../../../../bescheid-shared/src/lib/bescheid2.service'; -import { createBescheidResource } from '../../../../../../bescheid-shared/src/test/bescheid'; -import { createCommandStateResource, createSuccessfullyDoneCommandStateResource, } from '../../../../../../command-shared/test/command'; -import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test'; -import { createApiError } from '../../../../../../tech-shared/test/error'; -import { singleColdCompleted } from '../../../../../../tech-shared/test/marbles'; import { BescheidFormService } from '../../bescheid.formservice'; -import { BescheidWizardCancelDialogContainerComponent, CancelWizardDialogData, } from './bescheid-wizard-cancel-dialog-container.component'; +import { + BescheidWizardCancelDialogContainerComponent, + CancelWizardDialogData, +} from './bescheid-wizard-cancel-dialog-container.component'; describe('BescheidWizardCancelDialogContainerComponent', () => { let component: BescheidWizardCancelDialogContainerComponent; let fixture: ComponentFixture<BescheidWizardCancelDialogContainerComponent>; - const speichernButton: string = getDataTestIdOf('bescheiderstellung-abbrechen-entwurf-speichern'); - const verwerfenButton: string = getDataTestIdOf('bescheiderstellung-abbrechen-entwurf-verwerfen'); + const speichernButton: string = getDataTestIdAttributeOf('bescheiderstellung-abbrechen-entwurf-speichern'); + const verwerfenButton: string = getDataTestIdAttributeOf('bescheiderstellung-abbrechen-entwurf-verwerfen'); const dialogData: CancelWizardDialogData = { bescheidResource: createBescheidResource(), @@ -64,7 +76,12 @@ describe('BescheidWizardCancelDialogContainerComponent', () => { async function configureTestingModule(dialogData: CancelWizardDialogData) { await TestBed.configureTestingModule({ - declarations: [BescheidWizardCancelDialogContainerComponent, MockComponent(OzgcloudStrokedButtonWithSpinnerComponent)], + declarations: [ + BescheidWizardCancelDialogContainerComponent, + MockComponent(ButtonWithSpinnerComponent), + MockComponent(CheckIconComponent), + MockComponent(CloseIconComponent), + ], providers: [ { provide: BescheidService2, @@ -233,10 +250,7 @@ describe('BescheidWizardCancelDialogContainerComponent', () => { const commandStateResource: StateResource<CommandResource> = createCommandStateResource(); component.saveStateResource$ = of(commandStateResource); - const elementComponent: OzgcloudStrokedButtonWithSpinnerComponent = getElementComponentFromFixtureByCss( - fixture, - speichernButton, - ); + const elementComponent: ButtonWithSpinnerComponent = getElementComponentFromFixtureByCss(fixture, speichernButton); fixture.detectChanges(); @@ -263,10 +277,7 @@ describe('BescheidWizardCancelDialogContainerComponent', () => { const commandStateResource: StateResource<CommandResource> = createCommandStateResource(); component.deleteStateResource$ = of(commandStateResource); - const elementComponent: OzgcloudStrokedButtonWithSpinnerComponent = getElementComponentFromFixtureByCss( - fixture, - verwerfenButton, - ); + const elementComponent: ButtonWithSpinnerComponent = getElementComponentFromFixtureByCss(fixture, verwerfenButton); fixture.detectChanges(); diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.html index db9307187ec8c100d91ff2c2ffc7b99dd22fc5e2..4b6a5edec76e6372f0bc4f2665b8fccb8bd4e637 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.html +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.html @@ -1,12 +1,10 @@ -@if (bescheidResource | hasLink: BescheidLinkRel.CREATE_DOCUMENT) { - <ods-button-card - class="w-full max-w-72" - [isLoading]="bescheidDocument.create.loading" - (click)="clickEmitter.emit()" - text="Bescheiddokument" - subText="automatisch erstellen" - data-test-id="create-bescheid-document-button" - > - <ods-bescheid-generate-icon icon /> - </ods-button-card> -} +<ods-button-card + class="w-full max-w-72" + [isLoading]="bescheidDocument.create.loading" + (click)="clickEmitter.emit()" + text="Bescheiddokument" + subText="automatisch erstellen" + data-test-id="create-bescheid-document-button" +> + <ods-bescheid-generate-icon icon /> +</ods-button-card> diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.spec.ts index 0870d4c34bd3f5dab6ae510dfe171877bc700590..9473e81b5c48467f07cead6babee0a53cfb51a21 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.spec.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.spec.ts @@ -1,13 +1,6 @@ import { BescheidDocument, BescheidLinkRel, createEmptyBescheidDocument } from '@alfa-client/bescheid-shared'; import { HasLinkPipe } from '@alfa-client/tech-shared'; -import { - existsAsHtmlElement, - getElementComponentFromFixtureByCss, - mock, - Mock, - notExistsAsHtmlElement, - triggerEvent, -} from '@alfa-client/test-utils'; +import { existsAsHtmlElement, getElementComponentFromFixtureByCss, mock, Mock, triggerEvent } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { BescheidGenerateIconComponent, ButtonCardComponent } from '@ods/system'; import { MockComponent } from 'ng-mocks'; @@ -73,21 +66,11 @@ describe('BescheidWizardAutomatischErstellenButtonComponent', () => { describe('template', () => { describe('create button', () => { it('should exists', () => { - component.bescheidResource = createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]); - fixture.detectChanges(); existsAsHtmlElement(fixture, createButtonTestId); }); - it('should NOT exists', () => { - component.bescheidResource = createBescheidResource(); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, createButtonTestId); - }); - it('should have been called with inputs', () => { component.bescheidResource = createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]); component.bescheidDocument = bescheidDocument; diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.ts index 083aec95ac2ddd1d4b030e8ab57a3baf6b55f72e..5f268e460848a0e76c756106f1ead4a4fcee10fb 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/create-document-button-container/create-document-button/bescheid-wizard-create-document-button.component.ts @@ -8,7 +8,6 @@ import { BescheidFormService } from '../../../bescheid.formservice'; }) export class BescheidWizardCreateDocumentButtonComponent { @Input() bescheidResource: BescheidResource; - @Input() set bescheidDocument(value: BescheidDocument) { this._bescheidDocument = value; this.formService.updateBescheidDocumentFile(value.documentUri); diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.html index fd2a2ab6c43b6e00ba06a0347278e2ab53b0c5aa..edd8aff832236fb11a9b372a47c40f4bbb8d06d3 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.html +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.html @@ -24,23 +24,29 @@ --> <div class="mt-4 flex flex-col gap-4"> - <alfa-bescheid-wizard-create-document-button-container - [bescheidResource]="bescheidResource" - data-test-id="create-document-button" - ></alfa-bescheid-wizard-create-document-button-container> - <alfa-bescheid-wizard-upload-document-button-container - [bescheidResource]="bescheidResource" - data-test-id="upload-document-button" - ></alfa-bescheid-wizard-upload-document-button-container> - <alfa-bescheid-wizard-upload-attachment-button-container - [bescheidResource]="bescheidResource" - data-test-id="upload-attachment-button" - ></alfa-bescheid-wizard-upload-attachment-button-container> - @if (bescheidResource | hasLink: bescheidLinkRel.UPDATE) { + @if (bescheidResource | hasLink: BescheidLinkRel.CREATE_DOCUMENT) { + <alfa-bescheid-wizard-create-document-button-container + [bescheidResource]="bescheidResource" + data-test-id="create-document-button" + /> + } + @if (bescheidResource | hasLink: BescheidLinkRel.UPLOAD_BESCHEID_FILE) { + <alfa-bescheid-wizard-upload-document-button-container + [bescheidResource]="bescheidResource" + data-test-id="upload-document-button" + /> + } + @if (bescheidResource | hasLink: BescheidLinkRel.UPLOAD_ATTACHMENT) { + <alfa-bescheid-wizard-upload-attachment-button-container + [bescheidResource]="bescheidResource" + data-test-id="upload-attachment-button" + /> + } + @if (bescheidResource | hasLink: BescheidLinkRel.UPDATE) { <alfa-bescheid-wizard-weiter-button [submitStateResource]="submitStateResource$ | async" (clickEmitter)="gotoNextStep()" data-test-id="weiter-button" - ></alfa-bescheid-wizard-weiter-button> + /> } </div> diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.spec.ts index 02452fe302b69a044cef2cf621ea5a1e5734d6c2..57df8329cac9e5097d8045cd8f1448fdcb9d0f2b 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.spec.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.spec.ts @@ -21,10 +21,10 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { BescheidDocument, BescheidLinkRel, createEmptyBescheidDocument } from '@alfa-client/bescheid-shared'; +import { BescheidDocument, BescheidLinkRel, BescheidResource, createEmptyBescheidDocument } from '@alfa-client/bescheid-shared'; import { CommandResource } from '@alfa-client/command-shared'; import { HasLinkPipe, StateResource } from '@alfa-client/tech-shared'; -import { existsAsHtmlElement, getElementComponentFromFixtureByCss, mock, Mock, notExistsAsHtmlElement, triggerEvent, } from '@alfa-client/test-utils'; +import { existsAsHtmlElement, getMockComponent, mock, Mock, notExistsAsHtmlElement, triggerEvent } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { MockComponent } from 'ng-mocks'; import { EMPTY, of } from 'rxjs'; @@ -129,59 +129,98 @@ describe('BescheidWizardDokumenteHochladenFormComponent', () => { describe('template', () => { describe('create document button', () => { - it('should exists', () => { + const bescheidResourceWithLink: BescheidResource = createBescheidResource([BescheidLinkRel.CREATE_DOCUMENT]); + + it('should be visible if link is present', () => { + component.bescheidResource = bescheidResourceWithLink; + + fixture.detectChanges(); + existsAsHtmlElement(fixture, createDocumentButtonTestId); }); - it('should have been called with inputs', () => { + it('should hide if link is missing', () => { component.bescheidResource = createBescheidResource(); fixture.detectChanges(); - const createDocumentButton: BescheidWizardCreateDocumentButtonContainerComponent = - getElementComponentFromFixtureByCss<BescheidWizardCreateDocumentButtonContainerComponent>( - fixture, - createDocumentButtonTestId, - ); - expect(createDocumentButton.bescheidResource).toEqual(component.bescheidResource); + notExistsAsHtmlElement(fixture, createDocumentButtonTestId); + }); + + it('should have been called with inputs', () => { + component.bescheidResource = bescheidResourceWithLink; + + fixture.detectChanges(); + + const createDocumentButtonComp: BescheidWizardCreateDocumentButtonContainerComponent = getMockComponent( + fixture, + BescheidWizardCreateDocumentButtonContainerComponent, + ); + expect(createDocumentButtonComp.bescheidResource).toEqual(bescheidResourceWithLink); }); }); describe('upload document button', () => { - it('should exists', () => { + const bescheidResourceWithLink: BescheidResource = createBescheidResource([BescheidLinkRel.UPLOAD_BESCHEID_FILE]); + + it('should be visible if link is present', () => { + component.bescheidResource = bescheidResourceWithLink; + + fixture.detectChanges(); + existsAsHtmlElement(fixture, uploadDocumentButtonTestId); }); - it('should have been called with inputs', () => { + it('should hide if link is missing', () => { component.bescheidResource = createBescheidResource(); fixture.detectChanges(); - const uploadDocumentButton: BescheidWizardUploadDocumentButtonContainerComponent = - getElementComponentFromFixtureByCss<BescheidWizardUploadDocumentButtonContainerComponent>( - fixture, - uploadDocumentButtonTestId, - ); - expect(uploadDocumentButton.bescheidResource).toEqual(component.bescheidResource); + notExistsAsHtmlElement(fixture, uploadDocumentButtonTestId); + }); + + it('should have been called with inputs', () => { + component.bescheidResource = bescheidResourceWithLink; + + fixture.detectChanges(); + + const uploadDocumentButtonComp: BescheidWizardUploadDocumentButtonContainerComponent = getMockComponent( + fixture, + BescheidWizardUploadDocumentButtonContainerComponent, + ); + expect(uploadDocumentButtonComp.bescheidResource).toEqual(bescheidResourceWithLink); }); }); describe('upload attachment button', () => { - it('should exists', () => { + const bescheidResourceWithLink: BescheidResource = createBescheidResource([BescheidLinkRel.UPLOAD_ATTACHMENT]); + + it('should be visible if link is present', () => { + component.bescheidResource = bescheidResourceWithLink; + + fixture.detectChanges(); + existsAsHtmlElement(fixture, uploadAttachmentButtonTestId); }); - it('should have been called with inputs', () => { + it('should hide if link is missing', () => { component.bescheidResource = createBescheidResource(); fixture.detectChanges(); - const uploadAttachmentButton: BescheidWizardUploadAttachmentButtonContainerComponent = - getElementComponentFromFixtureByCss<BescheidWizardUploadAttachmentButtonContainerComponent>( - fixture, - uploadDocumentButtonTestId, - ); - expect(uploadAttachmentButton.bescheidResource).toEqual(component.bescheidResource); + notExistsAsHtmlElement(fixture, uploadAttachmentButtonTestId); + }); + + it('should have been called with inputs', () => { + component.bescheidResource = bescheidResourceWithLink; + + fixture.detectChanges(); + + const uploadAttachmentButtonComp: BescheidWizardUploadAttachmentButtonContainerComponent = getMockComponent( + fixture, + BescheidWizardUploadAttachmentButtonContainerComponent, + ); + expect(uploadAttachmentButtonComp.bescheidResource).toEqual(bescheidResourceWithLink); }); }); @@ -208,11 +247,12 @@ describe('BescheidWizardDokumenteHochladenFormComponent', () => { component.bescheidResource = createBescheidResource([BescheidLinkRel.UPDATE]); fixture.detectChanges(); - const weiterButton: BescheidWizardWeiterButtonComponent = - getElementComponentFromFixtureByCss<BescheidWizardWeiterButtonComponent>(fixture, weiterButtonTestId); - component.submitStateResource$.subscribe(); - expect(weiterButton.submitStateResource).toEqual(commandStateResource); + const weiterButtonComp: BescheidWizardWeiterButtonComponent = getMockComponent( + fixture, + BescheidWizardWeiterButtonComponent, + ); + expect(weiterButtonComp.submitStateResource).toEqual(commandStateResource); }); describe('output', () => { diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.ts index d09a24bce3dfd8a65dac3470147f42fff00aeda9..0aafb95573f07d4e36e93e6cb238671cef610816 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/dokumente-hochladen-container/form/bescheid-wizard-dokumente-hochladen-form.component.ts @@ -53,7 +53,7 @@ export class BescheidWizardDokumenteHochladenFormComponent { private _bescheidDocument: BescheidDocument; - protected readonly bescheidLinkRel = BescheidLinkRel; + protected readonly BescheidLinkRel = BescheidLinkRel; public gotoNextStep(): void { if (isNil(this._bescheidDocument.resource)) { diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/step-content-layout/step-content-layout.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/step-content-layout/step-content-layout.component.html index 43b8946ab2d59886a58ed927028c68158785dedc..5151ccc66814fe01ce9a81566ef11cdb0d4f415b 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/step-content-layout/step-content-layout.component.html +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/step-content-layout/step-content-layout.component.html @@ -24,17 +24,17 @@ --> <div class="flex h-full gap-11"> - <div class="flex w-1/2 flex-row gap-7"> + <div class="flex flex-1 flex-row gap-7 overflow-y-auto"> <alfa-bescheid-wizard-stepper [activeStep]="activeStep" (stepChange)="stepChange.emit($event)" data-test-id="wizard-stepper" /> - <div class="mt-2 flex flex-1 flex-col"> + <div class="mr-2 mt-2 flex flex-1 flex-col"> <ng-content select="[stepPanel]" /> </div> </div> - <div class="flex w-1/2"> + <div class="flex flex-1"> <alfa-bescheid-wizard-summary headline="Bescheid" data-test-id="wizard-summary"> <ng-content select="[summary]" /> </alfa-bescheid-wizard-summary> diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-attachment-button-container/upload-attachment-button/bescheid-wizard-upload-attachment-button.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-attachment-button-container/upload-attachment-button/bescheid-wizard-upload-attachment-button.component.spec.ts index 7aff85b5a346f756fae78c33398f875236e24390..91693776e3fecd1def3f2f7ce3cde0c54acefa23 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-attachment-button-container/upload-attachment-button/bescheid-wizard-upload-attachment-button.component.spec.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-attachment-button-container/upload-attachment-button/bescheid-wizard-upload-attachment-button.component.spec.ts @@ -1,4 +1,3 @@ -import { BescheidAttachments } from '@alfa-client/bescheid-shared'; import { createEmptyStateResource, createStateResource } from '@alfa-client/tech-shared'; import { getElementComponentFromFixtureByCss, triggerEvent } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; @@ -6,7 +5,6 @@ import { FormBuilder, ReactiveFormsModule } from '@angular/forms'; import { faker } from '@faker-js/faker'; import { FileUploadEditorComponent } from '@ods/component'; import { MockComponent } from 'ng-mocks'; -import { createBescheidAttachments } from '../../../../../../../bescheid-shared/src/test/bescheid'; import { createBinaryFileResource } from '../../../../../../../binary-file-shared/test/binary-file'; import { getDataTestIdOf } from '../../../../../../../tech-shared/test/data-test'; import { createFile } from '../../../../../../../tech-shared/test/file'; @@ -19,8 +17,6 @@ describe('BescheidWizardUploadAttachmentButtonComponent', () => { const uploadEditorTestId: string = getDataTestIdOf('bescheid-wizard-upload-editor'); - const bescheidAttachments: BescheidAttachments = createBescheidAttachments(); - let formService: BescheidFormService; beforeEach(() => { diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.html b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.html index 0b04ceb6fc50d6d98b70f95f7f252c6a62a11252..6ddb97a03c2c07a4e314f33c6d7d8297e4087eca 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.html +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.html @@ -1,6 +1,5 @@ <div [formGroup]="formService.form" class="w-full"> <ods-single-file-upload-editor - *ngIf="bescheidResource | hasLink: bescheidLinkRel.UPLOAD_BESCHEID_FILE" [uploadInProgress]="upload.loading" [formControlName]="formServiceClass.FIELD_BESCHEID_DOCUMENT" (newFile)="uploadFile($event)" diff --git a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts index d6616d37317a467e6a8c1976cfb1f2f5fc937ffc..66689e97b55fe62c4176df10614f23737020c5ba 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid-wizard-container/bescheid-wizard/upload-document-button-container/upload-document-button/bescheid-wizard-upload-document-button.component.spec.ts @@ -4,7 +4,6 @@ import { existsAsHtmlElement, getElementComponentFromFixtureByCss, mock, - notExistsAsHtmlElement, triggerEvent, useFromMock, } from '@alfa-client/test-utils'; @@ -110,14 +109,6 @@ describe('BescheidWizardDokumentHochladenButtonComponent', () => { existsAsHtmlElement(fixture, fileUploadEditorTestId); }); - it('should NOT exists', () => { - component.bescheidResource = createBescheidResource(); - - fixture.detectChanges(); - - notExistsAsHtmlElement(fixture, fileUploadEditorTestId); - }); - it('should have been called with inputs', () => { component.bescheidResource = createBescheidResource([BescheidLinkRel.UPLOAD_BESCHEID_FILE]); component.upload = createPendingUpload(); diff --git a/alfa-client/libs/bescheid/src/lib/bescheid.module.ts b/alfa-client/libs/bescheid/src/lib/bescheid.module.ts index b8f0eb5dafcd5b84ec2d13457ae195d2f4589ef9..e4e7092380ee0cdc7f9e1c206af6e03863b13b0c 100644 --- a/alfa-client/libs/bescheid/src/lib/bescheid.module.ts +++ b/alfa-client/libs/bescheid/src/lib/bescheid.module.ts @@ -65,6 +65,7 @@ import { BescheidWrapperComponent, ButtonCardComponent, ButtonComponent, + CheckIconComponent, CloseIconComponent, RadioButtonCardComponent, SaveIconComponent, @@ -140,6 +141,7 @@ import { BescheidWizardWeiterButtonComponent } from './bescheid-wizard-container FileUploadEditorComponent, SendIconComponent, SaveIconComponent, + CheckIconComponent, TextEditorComponent, TextareaEditorComponent, ConvertForDataTestPipe, diff --git a/alfa-client/libs/design-system/src/lib/button/button.component.ts b/alfa-client/libs/design-system/src/lib/button/button.component.ts index f74b535d27d39676f234aa058e837232cff37aba..f7805648f827ff51ca7fde46354aec02345a0fa3 100644 --- a/alfa-client/libs/design-system/src/lib/button/button.component.ts +++ b/alfa-client/libs/design-system/src/lib/button/button.component.ts @@ -30,7 +30,7 @@ import { SpinnerIconComponent } from '../icons/spinner-icon/spinner-icon.compone export const buttonVariants = cva( [ - 'flex items-center gap-4 rounded-lg text-sm font-medium box-border', + 'flex items-center gap-3 rounded-lg text-sm font-medium box-border', 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2', ], { diff --git a/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html b/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html index 33cd2c515616d0786b8c14d6a39948451590524c..3a5337cbab58d332a3c3e4e8d500db3f33bd1d2d 100644 --- a/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html +++ b/alfa-client/libs/ui/src/lib/ui/editor/date-editor/date-editor.component.html @@ -23,7 +23,7 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<mat-form-field> +<mat-form-field class="max-w-48"> <mat-label>{{ label }}</mat-label> <input matInput diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts index 072f568bac0f7d05aac47ee54e1e084025d3bd01..932363f2b33c3e0ebf50e8082a9389fd83a0a5a7 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts @@ -22,7 +22,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { BescheidWizardContainerComponent } from '@alfa-client/bescheid'; -import { BescheidResource, BescheidService, BescheidWizardDialogResult } from '@alfa-client/bescheid-shared'; +import { BescheidWizardDialogResult } from '@alfa-client/bescheid-shared'; import { CommandResource } from '@alfa-client/command-shared'; import { createEmptyStateResource, createStateResource, HasLinkPipe, StateResource } from '@alfa-client/tech-shared'; import { @@ -37,13 +37,7 @@ import { triggerEvent, } from '@alfa-client/test-utils'; import { OzgcloudDialogService } from '@alfa-client/ui'; -import { BescheidenDialogData } from '@alfa-client/vorgang-detail'; -import { - VorgangCommandService, - VorgangService, - VorgangWithEingangLinkRel, - VorgangWithEingangResource, -} from '@alfa-client/vorgang-shared'; +import { VorgangCommandService, VorgangService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; import { DialogRef } from '@angular/cdk/dialog'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ButtonWithSpinnerComponent } from '@ods/component'; @@ -53,7 +47,6 @@ import { getDataTestIdAttributeOf } from 'libs/tech-shared/test/data-test'; import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang'; import { MockComponent } from 'ng-mocks'; import { Observable, of } from 'rxjs'; -import { createBescheidResource } from '../../../../../bescheid-shared/src/test/bescheid'; import { VorgangDetailBescheidenComponent } from '../../vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component'; import { BescheidenButtonComponent } from './bescheiden-button.component'; @@ -66,7 +59,6 @@ describe('BescheidenButtonComponent', () => { let vorgangCommandService: Mock<VorgangCommandService>; let ozgcloudDialogService: Mock<OzgcloudDialogService>; - let bescheidService: Mock<BescheidService>; let vorgangService: Mock<VorgangService>; const dialogRef = <DialogRef<VorgangDetailBescheidenComponent>>{}; @@ -74,7 +66,6 @@ describe('BescheidenButtonComponent', () => { beforeEach(() => { vorgangCommandService = mock(VorgangCommandService); ozgcloudDialogService = mock(OzgcloudDialogService); - bescheidService = mock(BescheidService); vorgangService = mock(VorgangService); }); @@ -96,10 +87,6 @@ describe('BescheidenButtonComponent', () => { provide: OzgcloudDialogService, useValue: ozgcloudDialogService, }, - { - provide: BescheidService, - useValue: bescheidService, - }, { provide: VorgangService, useValue: vorgangService, @@ -225,84 +212,6 @@ describe('BescheidenButtonComponent', () => { }); }); - describe('openBescheidDialogWithNewDraft', () => { - it('should open wizard', () => { - component.vorgang = createVorgangWithEingangResource(); - component.openDialog = jest.fn(); - - component.openBescheidDialogWithNewDraft(); - - expect(component.openDialog).toHaveBeenCalledWith({ - vorgangWithEingangResource: component.vorgang, - bescheidDraftResource: null, - }); - }); - }); - - describe('openBescheidenDialogWithExistingDraft', () => { - const bescheidDraftResource: BescheidResource = createBescheidResource(); - const bescheidDraftStateResource: StateResource<BescheidResource> = createStateResource(bescheidDraftResource); - const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource([ - VorgangWithEingangLinkRel.BESCHEID_DRAFT, - ]); - - beforeEach(() => { - component.vorgang = vorgangWithEingangResource; - bescheidService.getBescheidDraftIfExists.mockReturnValue(of(bescheidDraftStateResource)); - }); - - it('should open wizard if bescheid draft loaded', () => { - component.openBescheidenDialogWithExistingDraft(); - - expect(ozgcloudDialogService.openWizard).toHaveBeenCalledWith(VorgangDetailBescheidenComponent, { - bescheidDraftResource, - vorgangWithEingangResource, - }); - }); - - it('should not open wizard if bescheid draft not loaded', () => { - bescheidService.getBescheidDraftIfExists.mockReturnValue(of(createEmptyStateResource())); - - component.openBescheidenDialogWithExistingDraft(); - - expect(ozgcloudDialogService.openWizard).not.toHaveBeenCalled(); - }); - - it('should not open wizard on loading bescheid draft', () => { - bescheidService.getBescheidDraftIfExists.mockReturnValue( - of({ ...createStateResource(createBescheidResource()), loading: true }), - ); - - component.openBescheidenDialogWithExistingDraft(); - - expect(ozgcloudDialogService.openWizard).not.toHaveBeenCalled(); - }); - }); - - describe('openDialog', () => { - const bescheidDraftResource: BescheidResource = createBescheidResource(); - const bescheidDraftStateResource: StateResource<BescheidResource> = createStateResource(bescheidDraftResource); - const vorgangWithEingangResource: VorgangWithEingangResource = createVorgangWithEingangResource([ - VorgangWithEingangLinkRel.BESCHEID_DRAFT, - ]); - - const dialogData: BescheidenDialogData = { - bescheidDraftResource: bescheidDraftResource, - vorgangWithEingangResource: vorgangWithEingangResource, - }; - - beforeEach(() => { - component.vorgang = vorgangWithEingangResource; - bescheidService.getBescheidDraftIfExists.mockReturnValue(of(bescheidDraftStateResource)); - }); - - it('should call ozgcloudDialogService.openWizard', () => { - component.openDialog(dialogData); - - expect(ozgcloudDialogService.openWizard).toHaveBeenCalledWith(VorgangDetailBescheidenComponent, dialogData); - }); - }); - describe('handleBescheidWizardClosed', () => { it('should reload current vorgang', () => { component.handleBescheidWizardClosed({ reloadVorgang: true }); diff --git a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts index 65e3c32d26e50c662463f04804b56def5f01dfca..14105a18936391dbbf8646abed381e2b9273767c 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.ts @@ -22,17 +22,21 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { BescheidWizardContainerComponent } from '@alfa-client/bescheid'; -import { BescheidResource, BescheidService, BescheidWizardDialogResult } from '@alfa-client/bescheid-shared'; +import { BescheidWizardDialogResult } from '@alfa-client/bescheid-shared'; import { CommandResource } from '@alfa-client/command-shared'; -import { createEmptyStateResource, isLoaded, isNotNil, StateResource } from '@alfa-client/tech-shared'; +import { createEmptyStateResource, isNotNil, StateResource } from '@alfa-client/tech-shared'; import { OzgcloudDialogService } from '@alfa-client/ui'; -import { VorgangCommandService, VorgangService, VorgangWithEingangLinkRel, VorgangWithEingangResource, } from '@alfa-client/vorgang-shared'; +import { + VorgangCommandService, + VorgangService, + VorgangWithEingangLinkRel, + VorgangWithEingangResource, +} from '@alfa-client/vorgang-shared'; import { DialogRef } from '@angular/cdk/dialog'; import { Component, Input, OnInit } from '@angular/core'; import { hasLink } from '@ngxp/rest'; -import { filter, first, map, Observable, of } from 'rxjs'; +import { Observable, of } from 'rxjs'; import { BescheidenDialogData } from '../../vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model'; -import { VorgangDetailBescheidenComponent } from '../../vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component'; @Component({ selector: 'alfa-bescheiden-button', @@ -61,7 +65,6 @@ export class BescheidenButtonComponent implements OnInit { private vorgangCommandService: VorgangCommandService, private vorgangService: VorgangService, private ozgcloudDialogService: OzgcloudDialogService, - private bescheidService: BescheidService, ) {} ngOnInit(): void { @@ -98,38 +101,4 @@ export class BescheidenButtonComponent implements OnInit { this.vorgangService.reloadCurrentVorgang(); } } - - openBescheidenDialogWithExistingDraft(): void { - this.bescheidService - .getBescheidDraftIfExists() - .pipe( - filter(isLoaded), - first(), - map((stateResource: StateResource<BescheidResource>) => stateResource.resource), - ) - .subscribe((bescheidDraftResource: BescheidResource) => { - const dialogData: BescheidenDialogData = { - bescheidDraftResource, - vorgangWithEingangResource: this.vorgang, - }; - - this.openDialog(dialogData); - }); - } - - openBescheidDialogWithNewDraft(): void { - const dialogData: BescheidenDialogData = { - bescheidDraftResource: null, - vorgangWithEingangResource: this.vorgang, - }; - - this.openDialog(dialogData); - } - - openDialog(dialogData: BescheidenDialogData): void { - this.ozgcloudDialogService.openWizard<VorgangDetailBescheidenComponent, BescheidenDialogData>( - VorgangDetailBescheidenComponent, - dialogData, - ); - } }