Skip to content
Snippets Groups Projects
Commit b011a523 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-4527 OZG-4756 implement history for set aktenzeichen'...

Merge pull request 'OZG-4527 OZG-4756 implement history for set aktenzeichen' (#382) from OZG-4598-aktenzeichen-historie into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/alfa/pulls/382
parents f3b83ff9 d307df49
No related branches found
No related tags found
No related merge requests found
Showing with 167 additions and 1 deletion
...@@ -89,7 +89,8 @@ export enum CommandOrderType { ...@@ -89,7 +89,8 @@ export enum CommandOrderType {
POSTFACH_NACHRICHT = 'PostfachNachricht', POSTFACH_NACHRICHT = 'PostfachNachricht',
VORGANG = 'Vorgang', VORGANG = 'Vorgang',
WIEDERVORLAGE = 'Wiedervorlage', WIEDERVORLAGE = 'Wiedervorlage',
LOESCH_ANFORDERUNG = 'LoeschAnforderung' LOESCH_ANFORDERUNG = 'LoeschAnforderung',
SET_AKTENZEICHEN = 'SetAktenzeichen',
} }
export const ORDER_TYPE_BY_COMMAND_ORDER = { export const ORDER_TYPE_BY_COMMAND_ORDER = {
...@@ -117,6 +118,7 @@ export const ORDER_TYPE_BY_COMMAND_ORDER = { ...@@ -117,6 +118,7 @@ export const ORDER_TYPE_BY_COMMAND_ORDER = {
[CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN]: CommandOrderType.LOESCH_ANFORDERUNG, [CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN]: CommandOrderType.LOESCH_ANFORDERUNG,
[CommandOrder.VORGANG_LOESCHEN]: CommandOrderType.LOESCH_ANFORDERUNG, [CommandOrder.VORGANG_LOESCHEN]: CommandOrderType.LOESCH_ANFORDERUNG,
[CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN]: CommandOrderType.LOESCH_ANFORDERUNG, [CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN]: CommandOrderType.LOESCH_ANFORDERUNG,
[CommandOrder.SET_AKTENZEICHEN]: CommandOrderType.SET_AKTENZEICHEN,
} }
export interface CreateCommandProps { export interface CreateCommandProps {
......
<div class="mat-expansion-panel" *ngIf="aktenzeichenDeleted; else expandable">
<alfa-historie-item-header [headline]="headline" [resource]="command" data-test-id="historie-item-aktenzeichen-header"></alfa-historie-item-header>
</div>
<ng-template #expandable>
<alfa-expansion-panel-with-user [headline]="headline" [resource]="command">
<p data-test-class="aktenzeichen-text">Aktenzeichen: {{ aktenzeichen }}</p>
</alfa-expansion-panel-with-user>
</ng-template>
\ No newline at end of file
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CommandOrder, CommandResource } from '@alfa-client/command-shared';
import { createCommandResource } from 'libs/command-shared/test/command';
import { MockComponent } from 'ng-mocks';
import { ExpansionPanelWithUserComponent } from '../expansion-panel-with-user/expansion-panel-with-user.component';
import { HistorieItemAttachmentComponent } from '../historie-item-attachment/historie-item-attachment.component';
import { HistorieItemAktenzeichenComponent } from './historie-item-aktenzeichen.component';
import { getElementFromFixture } from '@alfa-client/test-utils';
import { getDataTestClassOf, getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
import { HistorieItemHeaderComponent } from '../historie-item-header/historie-item-header.component';
describe('HistorieItemAktenzeichenComponent', () => {
let component: HistorieItemAktenzeichenComponent;
let fixture: ComponentFixture<HistorieItemAktenzeichenComponent>;
const kommentarCommand: CommandResource = {
...createCommandResource(),
order: CommandOrder.CREATE_KOMMENTAR,
body: { item: { text: 'Beispiel text fuer einen Kommentar' } }
};
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [
HistorieItemAktenzeichenComponent,
MockComponent(ExpansionPanelWithUserComponent),
MockComponent(HistorieItemAttachmentComponent),
MockComponent(HistorieItemHeaderComponent),
],
}).compileComponents();
})
beforeEach(() => {
fixture = TestBed.createComponent(HistorieItemAktenzeichenComponent);
component = fixture.componentInstance;
component.command = kommentarCommand;
fixture.detectChanges();
})
it('should create', () => {
expect(component).toBeTruthy();
})
it('should render non expandable historie item', () => {
component.aktenzeichenDeleted = true;
fixture.detectChanges();
const historieItem = getElementFromFixture(fixture, getDataTestIdOf('historie-item-aktenzeichen-header'));
expect(historieItem).toBeInstanceOf(HTMLElement);
})
it('should render expandable historie item', () => {
component.aktenzeichenDeleted = false;
fixture.detectChanges();
const aktenzeichenText = getElementFromFixture(fixture, getDataTestClassOf('aktenzeichen-text'));
expect(aktenzeichenText).toBeInstanceOf(HTMLElement);
})
describe('ngOnInit', () => {
it('should set headline', () => {
component.setHeadline = jest.fn();
component.ngOnInit();
expect(component.setHeadline).toHaveBeenCalled();
})
it('should mark aktenzeichen as deleted', () => {
component.command.body.aktenzeichen = null;
component.ngOnInit();
expect(component.aktenzeichenDeleted).toBeTruthy();
})
it('should mark aktenzeichen as NOT deleted', () => {
component.command.body.aktenzeichen = '1';
component.ngOnInit();
expect(component.aktenzeichenDeleted).toBeFalsy();
})
})
describe('setHeadline', () => {
it('should set headline for order ' + CommandOrder.SET_AKTENZEICHEN, () => {
component.aktenzeichenDeleted = false;
component.command = { ...kommentarCommand, order: CommandOrder.SET_AKTENZEICHEN };
component.setHeadline()
expect(component.headline).toBe('das Aktenzeichen geändert.');
})
it('should set headline for deleted aktenzeichen', () => {
component.aktenzeichenDeleted = true;
component.setHeadline()
expect(component.headline).toBe('das Aktenzeichen gelöscht.');
})
})
});
import { Component, Input, OnInit } from '@angular/core';
import { CommandOrder, CommandResource } from '@alfa-client/command-shared';
import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
import { isEmpty, isNull } from 'lodash-es';
import { hasContent } from '@alfa-client/tech-shared';
@Component({
selector: 'alfa-historie-item-aktenzeichen',
templateUrl: './historie-item-aktenzeichen.component.html',
styleUrls: ['./historie-item-aktenzeichen.component.scss'],
})
export class HistorieItemAktenzeichenComponent implements OnInit {
@Input() command: CommandResource;
headline: string;
aktenzeichenDeleted = false;
get aktenzeichen(): any {
return this.command.body.aktenzeichen;
}
ngOnInit(): void {
this.aktenzeichenDeleted = isEmpty(this.aktenzeichen);
this.setHeadline();
}
setHeadline(): void {
if (this.aktenzeichenDeleted) {
this.headline = 'das Aktenzeichen gelöscht.';
} else {
this.headline = HISTORIE_TEXT_BY_KOMMENTAR_ORDER[this.command.order];
}
}
}
const HISTORIE_TEXT_BY_KOMMENTAR_ORDER: { [order: string]: string } = {
[CommandOrder.SET_AKTENZEICHEN]: 'das Aktenzeichen geändert.',
}
\ No newline at end of file
...@@ -45,6 +45,9 @@ ...@@ -45,6 +45,9 @@
<ng-container *ngSwitchCase="commandOrderType.LOESCH_ANFORDERUNG"> <ng-container *ngSwitchCase="commandOrderType.LOESCH_ANFORDERUNG">
<alfa-historie-item-loesch-anforderung [command]="historieCommand" data-test-id="historie-item-loesch-anforderung"></alfa-historie-item-loesch-anforderung> <alfa-historie-item-loesch-anforderung [command]="historieCommand" data-test-id="historie-item-loesch-anforderung"></alfa-historie-item-loesch-anforderung>
</ng-container> </ng-container>
<ng-container *ngSwitchCase="commandOrderType.SET_AKTENZEICHEN">
<alfa-historie-item-aktenzeichen [command]="historieCommand" data-test-id="historie-item-aktenzeichen"></alfa-historie-item-aktenzeichen>
</ng-container>
<ng-container *ngSwitchDefault> <ng-container *ngSwitchDefault>
<alfa-historie-item-unknown [headline]="historieCommand.order" [resource]="historieCommand" data-test-id="historie-item-unknown"></alfa-historie-item-unknown> <alfa-historie-item-unknown [headline]="historieCommand.order" [resource]="historieCommand" data-test-id="historie-item-unknown"></alfa-historie-item-unknown>
</ng-container> </ng-container>
......
...@@ -45,6 +45,7 @@ import { HistorieItemWiedervorlageStatusComponent } from './historie-container/h ...@@ -45,6 +45,7 @@ import { HistorieItemWiedervorlageStatusComponent } from './historie-container/h
import { HistorieItemWiedervorlageComponent } from './historie-container/historie-list/historie-item-wiedervorlage/historie-item-wiedervorlage.component'; import { HistorieItemWiedervorlageComponent } from './historie-container/historie-list/historie-item-wiedervorlage/historie-item-wiedervorlage.component';
import { HistorieListItemComponent } from './historie-container/historie-list/historie-list-item/historie-list-item.component'; import { HistorieListItemComponent } from './historie-container/historie-list/historie-list-item/historie-list-item.component';
import { HistorieListComponent } from './historie-container/historie-list/historie-list.component'; import { HistorieListComponent } from './historie-container/historie-list/historie-list.component';
import { HistorieItemAktenzeichenComponent } from './historie-container/historie-list/historie-item-aktenzeichen/historie-item-aktenzeichen.component';
@NgModule({ @NgModule({
imports: [ imports: [
...@@ -73,6 +74,7 @@ import { HistorieListComponent } from './historie-container/historie-list/histor ...@@ -73,6 +74,7 @@ import { HistorieListComponent } from './historie-container/historie-list/histor
HistorieItemWiedervorlageStatusComponent, HistorieItemWiedervorlageStatusComponent,
HistorieItemAttachmentComponent, HistorieItemAttachmentComponent,
HistorieItemLoeschAnforderungComponent, HistorieItemLoeschAnforderungComponent,
HistorieItemAktenzeichenComponent,
], ],
exports: [HistorieContainerComponent], exports: [HistorieContainerComponent],
}) })
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment