Skip to content
Snippets Groups Projects
Verified Commit 105f5270 authored by Sebastian Bergandy's avatar Sebastian Bergandy :keyboard:
Browse files

OZG-6185 remove unused bescheid component

parent aa0f2f5f
Branches
Tags
1 merge request!90Ozg 6185 remove old bescheid code
<!--
Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
Ministerpräsidenten des Landes Schleswig-Holstein
Staatskanzlei
Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
Lizenziert unter der EUPL, Version 1.2 oder - sobald
diese von der Europäischen Kommission genehmigt wurden -
Folgeversionen der EUPL ("Lizenz");
Sie dürfen dieses Werk ausschließlich gemäß
dieser Lizenz nutzen.
Eine Kopie der Lizenz finden Sie hier:
https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
Sofern nicht durch anwendbare Rechtsvorschriften
gefordert oder in schriftlicher Form vereinbart, wird
die unter der Lizenz verbreitete Software "so wie sie
ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
ausdrücklich oder stillschweigend - verbreitet.
Die sprachspezifischen Genehmigungen und Beschränkungen
unter der Lizenz sind dem Lizenztext zu entnehmen.
-->
<alfa-bescheid-in-vorgang
*ngIf="bescheidStateResource$ | async as bescheidStateResource"
data-test-id="bescheid-in-vorgang"
[bescheidStateResource]="bescheidStateResource"
[bescheidDocumentFile]="bescheidDocumentFile$ | async"
[hasBescheidDraft]="hasBescheidDraft"
>
</alfa-bescheid-in-vorgang>
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
import { StateResource, createStateResource } from '@alfa-client/tech-shared';
import { Mock, mock } from '@alfa-client/test-utils';
import { VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { SimpleChanges } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid';
import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
import { MockComponent } from 'ng-mocks';
import { of } from 'rxjs';
import { BescheidInVorgangContainerComponent } from './bescheid-in-vorgang-container.component';
import { BescheidInVorgangComponent } from './bescheid-in-vorgang/bescheid-in-vorgang.component';
describe('BescheidInVorgangContainerComponent', () => {
let component: BescheidInVorgangContainerComponent;
let fixture: ComponentFixture<BescheidInVorgangContainerComponent>;
let bescheidService: Mock<BescheidService>;
const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
const noChanges: SimpleChanges = {};
const changes: SimpleChanges = <any>{ vorgang: vorgang };
const bescheidResource: BescheidResource = createBescheidResource();
const bescheidStateResource: StateResource<BescheidResource> =
createStateResource(bescheidResource);
beforeEach(async () => {
bescheidService = mock(BescheidService);
bescheidService.getBescheidDocumentFile = jest.fn();
bescheidService.loadBescheidDocument = jest.fn();
bescheidService.getBescheidDraft.mockReturnValue(of(bescheidStateResource));
await TestBed.configureTestingModule({
declarations: [
BescheidInVorgangContainerComponent,
MockComponent(BescheidInVorgangComponent),
],
providers: [{ provide: BescheidService, useValue: bescheidService }],
}).compileComponents();
fixture = TestBed.createComponent(BescheidInVorgangContainerComponent);
component = fixture.componentInstance;
component.vorgang = vorgang;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
describe('hasBescheidDraft', () => {
it('should return false', () => {
component.vorgang = vorgang;
expect(component.hasBescheidDraft).toBeFalsy();
});
it('should return true', () => {
component.vorgang = createVorgangWithEingangResource([
VorgangWithEingangLinkRel.BESCHEID_DRAFT,
]);
expect(component.hasBescheidDraft).toBeTruthy();
});
});
describe('onChanges', () => {
it('should not call getBescheid', () => {
component.getBescheid = jest.fn();
component.ngOnChanges(noChanges);
expect(component.getBescheid).not.toHaveBeenCalled();
});
it('should call getBescheid', () => {
component.getBescheid = jest.fn();
component.ngOnChanges(changes);
expect(component.getBescheid).toHaveBeenCalled();
});
it('should not call bescheidService.getBescheidDocumentFile', () => {
component.ngOnChanges(noChanges);
expect(bescheidService.getBescheidDocumentFile).not.toHaveBeenCalled();
});
it('should call bescheidService.getBescheidDocumentFile', () => {
component.ngOnChanges(changes);
expect(bescheidService.getBescheidDocumentFile).toHaveBeenCalled();
});
});
describe('getBescheid', () => {
it('should not call bescheidService.loadBescheidDocumentByUri', (done) => {
component.ngOnChanges(changes);
component.bescheidStateResource$.subscribe(() => {
expect(bescheidService.loadBescheidDocumentByUri).not.toHaveBeenCalled();
done();
});
});
it('should call bescheidService.loadBescheidDocumentByUri', (done) => {
const bescheidResource: BescheidResource = createBescheidResource([
BescheidLinkRel.BESCHEID_DOCUMENT,
]);
const bescheidStateResource: StateResource<BescheidResource> =
createStateResource(bescheidResource);
bescheidService.getBescheidDraft.mockReturnValue(of(bescheidStateResource));
component.ngOnChanges(changes);
component.bescheidStateResource$.subscribe(() => {
expect(bescheidService.loadBescheidDocumentByUri).toHaveBeenCalled();
done();
});
});
});
});
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { BescheidLinkRel, BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
import { BinaryFileResource } from '@alfa-client/binary-file-shared';
import { StateResource } from '@alfa-client/tech-shared';
import { VorgangResource, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared';
import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
import { getUrl, hasLink } from '@ngxp/rest';
import { has } from 'lodash-es';
import { Observable, tap } from 'rxjs';
@Component({
selector: 'alfa-bescheid-in-vorgang-container',
templateUrl: './bescheid-in-vorgang-container.component.html',
styles: [],
})
export class BescheidInVorgangContainerComponent implements OnChanges {
@Input() vorgang: VorgangResource;
public bescheidStateResource$: Observable<StateResource<BescheidResource>>;
public bescheidDocumentFile$: Observable<StateResource<BinaryFileResource>>;
get hasBescheidDraft(): boolean {
return hasLink(this.vorgang, VorgangWithEingangLinkRel.BESCHEID_DRAFT);
}
constructor(private bescheidService: BescheidService) {}
// TODO Prüfen, warum nicht als Setter möglich. Hatte im ersten Versuch zu Laufzeitfehlern geführt.
ngOnChanges(changes: SimpleChanges): void {
if (!has(changes, 'vorgang')) {
return;
}
this.bescheidStateResource$ = this.getBescheid();
this.bescheidDocumentFile$ = this.bescheidService.getBescheidDocumentFile();
}
getBescheid(): Observable<StateResource<BescheidResource>> {
return this.bescheidService.getBescheidDraft().pipe(
tap((bescheidResource) => {
if (hasLink(bescheidResource.resource, BescheidLinkRel.BESCHEID_DOCUMENT)) {
this.bescheidService.loadBescheidDocumentByUri(
getUrl(bescheidResource.resource, BescheidLinkRel.BESCHEID_DOCUMENT),
);
}
}),
);
}
}
<!--
Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
Ministerpräsidenten des Landes Schleswig-Holstein
Staatskanzlei
Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
Lizenziert unter der EUPL, Version 1.2 oder - sobald
diese von der Europäischen Kommission genehmigt wurden -
Folgeversionen der EUPL ("Lizenz");
Sie dürfen dieses Werk ausschließlich gemäß
dieser Lizenz nutzen.
Eine Kopie der Lizenz finden Sie hier:
https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
Sofern nicht durch anwendbare Rechtsvorschriften
gefordert oder in schriftlicher Form vereinbart, wird
die unter der Lizenz verbreitete Software "so wie sie
ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
ausdrücklich oder stillschweigend - verbreitet.
Die sprachspezifischen Genehmigungen und Beschränkungen
unter der Lizenz sind dem Lizenztext zu entnehmen.
-->
<ozgcloud-spinner [stateResource]="bescheidStateResource">
<ng-container *ngIf="bescheidStateResource.resource as bescheid">
<ozgcloud-expansion-panel headline="Bescheid">
<div class="flex max-w-xl flex-col gap-4">
<ods-bescheid-status-text [dateText]="bescheid.beschiedenAm | formatFullDatePipe" />
<alfa-binary-file2-container
*ngIf="bescheidDocumentFile.resource && bescheidDocumentFile.loaded"
[file]="bescheidDocumentFile.resource"
data-test-id="bescheid-document-in-vorgang-binary-file"
>
</alfa-binary-file2-container>
</div>
</ozgcloud-expansion-panel>
</ng-container>
</ozgcloud-spinner>
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { BescheidResource } from '@alfa-client/bescheid-shared';
import { BinaryFile2ContainerComponent, BinaryFileContainerComponent } from '@alfa-client/binary-file';
import { BinaryFileResource } from '@alfa-client/binary-file-shared';
import { StateResource, createStateResource } from '@alfa-client/tech-shared';
import { existsAsHtmlElement, notExistsAsHtmlElement } from '@alfa-client/test-utils';
import { ExpansionPanelComponent, SpinnerComponent } from '@alfa-client/ui';
import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/de';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormatFullDatePipe } from 'libs/tech-shared/src/lib/pipe/format-full-date.pipe';
import { MockComponent } from 'ng-mocks';
import { createBescheidResource } from '../../../../../bescheid-shared/src/test/bescheid';
import { createBinaryFileResource } from '../../../../../binary-file-shared/test/binary-file';
import { getDataTestIdOf } from '../../../../../tech-shared/test/data-test';
import { BescheidInVorgangComponent } from './bescheid-in-vorgang.component';
import { BescheidStatusTextComponent } from '@ods/system';
registerLocaleData(localeDe);
describe('BescheidInVorgangComponent', () => {
let component: BescheidInVorgangComponent;
let fixture: ComponentFixture<BescheidInVorgangComponent>;
const bescheidResource: BescheidResource = createBescheidResource();
const bescheidStateResource: StateResource<BescheidResource> = createStateResource(bescheidResource);
const binaryFile: BinaryFileResource = createBinaryFileResource();
const binaryFileStateResource: StateResource<BinaryFileResource> = createStateResource(binaryFile);
const bescheidDocumentBinaryFileContainer: string = getDataTestIdOf('bescheid-document-in-vorgang-binary-file');
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [
BescheidInVorgangComponent,
FormatFullDatePipe,
MockComponent(SpinnerComponent),
MockComponent(ExpansionPanelComponent),
MockComponent(BinaryFileContainerComponent),
MockComponent(BescheidStatusTextComponent),
MockComponent(BinaryFile2ContainerComponent),
],
}).compileComponents();
fixture = TestBed.createComponent(BescheidInVorgangComponent);
component = fixture.componentInstance;
component.bescheidStateResource = bescheidStateResource;
component.bescheidDocumentFile = binaryFileStateResource;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
describe('render', () => {
it('should show bescheid document file', () => {
component.bescheidDocumentFile = createStateResource(createBinaryFileResource());
fixture.detectChanges();
existsAsHtmlElement(fixture, bescheidDocumentBinaryFileContainer);
});
it('should NOT show bescheid document file if resource null', () => {
component.bescheidDocumentFile = { ...createStateResource(null), loaded: true };
fixture.detectChanges();
notExistsAsHtmlElement(fixture, bescheidDocumentBinaryFileContainer);
});
it('should NOT show bescheid document file if resource loading', () => {
component.bescheidDocumentFile = {
...createStateResource(createBinaryFileResource()),
loaded: false,
};
fixture.detectChanges();
notExistsAsHtmlElement(fixture, bescheidDocumentBinaryFileContainer);
});
});
describe('bescheidBewilligt', () => {
it('should return true', () => {
component.bescheidStateResource.resource.bewilligt = true;
expect(component.bescheidBewilligt).toBeTruthy();
});
it('should return false', () => {
component.bescheidStateResource.resource.bewilligt = false;
expect(component.bescheidBewilligt).toBeFalsy();
});
});
describe('bescheidAbgelehnt', () => {
it('should return false', () => {
component.bescheidStateResource.resource.bewilligt = true;
expect(component.bescheidAbgelehnt).toBeFalsy();
});
it('should return true', () => {
component.bescheidStateResource.resource.bewilligt = false;
expect(component.bescheidAbgelehnt).toBeTruthy();
});
});
});
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { BescheidResource } from '@alfa-client/bescheid-shared';
import { BinaryFileResource } from '@alfa-client/binary-file-shared';
import { StateResource } from '@alfa-client/tech-shared';
import { Component, Input } from '@angular/core';
@Component({
selector: 'alfa-bescheid-in-vorgang',
templateUrl: './bescheid-in-vorgang.component.html',
})
export class BescheidInVorgangComponent {
@Input() bescheidStateResource: StateResource<BescheidResource>;
@Input() bescheidDocumentFile: StateResource<BinaryFileResource>;
@Input() hasBescheidDraft: boolean = false;
get bescheidBewilligt(): boolean {
return <boolean>this.bescheidStateResource.resource.bewilligt;
}
get bescheidAbgelehnt(): boolean {
return !this.bescheidBewilligt;
}
}
......@@ -28,8 +28,6 @@ import { ConvertForDataTestPipe, ConvertProblemDetailToErrorMessagesPipe, GetUrl
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { ButtonWithSpinnerComponent, FileUploadEditorComponent, SingleFileUploadEditorComponent, TextareaEditorComponent, TextEditorComponent, } from '@ods/component';
import { BescheidInVorgangContainerComponent } from './bescheid-in-vorgang-container/bescheid-in-vorgang-container.component';
import { BescheidInVorgangComponent } from './bescheid-in-vorgang-container/bescheid-in-vorgang/bescheid-in-vorgang.component';
import { BescheidListInVorgangContainerComponent } from './bescheid-list-in-vorgang-container/bescheid-list-in-vorgang-container.component';
import { BescheidListInVorgangComponent } from './bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/bescheid-list-in-vorgang.component';
import { DocumentInBescheidContainerComponent } from './bescheid-list-in-vorgang-container/bescheid-list-in-vorgang/document-in-bescheid-container/document-in-bescheid-container.component';
......@@ -114,8 +112,6 @@ import { BescheidWizardWeiterButtonComponent } from './bescheid-wizard-container
MultiFileUploadEditorComponent,
],
declarations: [
BescheidInVorgangContainerComponent,
BescheidInVorgangComponent,
BescheidListInVorgangContainerComponent,
BescheidListInVorgangComponent,
DocumentInBescheidContainerComponent,
......@@ -152,10 +148,6 @@ import { BescheidWizardWeiterButtonComponent } from './bescheid-wizard-container
BescheidWizardBescheidVersendenSpeichernComponent,
StepContentLayoutComponent,
],
exports: [
BescheidInVorgangContainerComponent,
BescheidListInVorgangContainerComponent,
BeschiedenDateInVorgangContainerComponent,
],
exports: [BescheidListInVorgangContainerComponent, BeschiedenDateInVorgangContainerComponent],
})
export class BescheidModule {}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment