From 9dc0d8b79c944d1a3cd118f645f89a63f0c5d4be Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Fri, 9 Jul 2021 17:09:05 +0200 Subject: [PATCH] add a few test's; clean up some code parts --- .../src/lib/command.service.spec.ts | 102 ++++++++++++++---- .../command-shared/src/lib/command.service.ts | 8 +- .../src/lib/forwarding.service.spec.ts | 13 +++ .../vorgang-forward-form.component.spec.ts | 47 +++++++- .../vorgang-forward-form.component.ts | 23 ++-- .../vorgang-forward.formservice.spec.ts | 22 +++- .../vorgang-forward.formservice.ts | 8 +- ...ang-forwarding-container.component.spec.ts | 41 +++++-- ...ward-zustellen-container.component.spec.ts | 11 +- .../kommentar-form.component.spec.ts | 8 +- .../kommentar-form.component.ts | 8 +- ...ist-in-vorgang-container.component.spec.ts | 33 ++++++ .../kommentar-list-in-vorgang.component.ts | 6 +- .../src/lib/ozg-file.repository.spec.ts | 20 +++- .../anhang-list-container.component.spec.ts | 14 ++- .../anhang-list-container.component.ts | 4 +- .../ozg-file-container.component.spec.ts | 17 ++- .../abschliessen-button.component.spec.ts | 9 ++ .../annehmen-button.component.spec.ts | 9 ++ .../bearbeiten-button.component.spec.ts | 9 ++ .../bescheiden-button.component.spec.ts | 9 ++ .../verwerfen-button.component.spec.ts | 9 ++ .../wiedereroeffnen-button.component.spec.ts | 9 ++ .../zurueckholen-button.component.spec.ts | 9 ++ .../zurueckstellen-button.component.spec.ts | 9 ++ .../form-data-table.component.ts | 16 +-- .../vorgang-list-container.component.spec.ts | 9 ++ .../wiedervorlage.formservice.ts | 6 -- 28 files changed, 409 insertions(+), 79 deletions(-) diff --git a/goofy-client/libs/command-shared/src/lib/command.service.spec.ts b/goofy-client/libs/command-shared/src/lib/command.service.spec.ts index e254e3398c..ce93819d6b 100644 --- a/goofy-client/libs/command-shared/src/lib/command.service.spec.ts +++ b/goofy-client/libs/command-shared/src/lib/command.service.spec.ts @@ -1,4 +1,4 @@ -import { ApiError, createStateResource, StateResource } from '@goofy-client/tech-shared'; +import { ApiError, createEmptyStateResource, createStateResource, StateResource } from '@goofy-client/tech-shared'; import { mock, Mock, useFromMock } from '@goofy-client/test-utils'; import { Resource } from '@ngxp/rest'; import * as faker from 'faker'; @@ -6,10 +6,11 @@ import { cold, hot } from 'jest-marbles'; import { createCommand, createCommandResource } from 'libs/command-shared/test/command'; import { createApiError } from 'libs/tech-shared/test/error'; import { toResource } from 'libs/tech-shared/test/resource'; +import { Observable } from 'rxjs'; import { CommandLinkRel } from './command.linkrel'; import { Command, CommandResource } from './command.model'; import { CommandRepository } from './command.repository'; -import { CommandService } from './command.service'; +import { CommandService, startInterval } from './command.service'; describe('CommandService', () => { let service; @@ -58,25 +59,6 @@ describe('CommandService', () => { }) }) - describe('get command', () => { - - beforeEach(() => { - repository.getCommand.mockReturnValue(cold('a', { a: commandResource })); - }) - - it('should call repository with resource', () => { - service.getCommand(commandResource); - - expect(repository.getCommand).toHaveBeenCalledWith(commandResource); - }) - - it('should return value', () => { - const result = service.getCommand(commandResource); - - expect(result).toBeObservable(hot('a', { a: commandResource })) - }) - }) - describe('revoke command', () => { beforeEach(() => { @@ -114,6 +96,27 @@ describe('CommandService', () => { }) }) + describe('handle interval', () => { + + const interval = { handle: () => null }; + + beforeEach(() => { + service.clearInterval = jest.fn(); + }) + + it('should call clearInterval', () => { + service.handleInterval(createEmptyStateResource(), interval); + + expect(service.clearInterval).toHaveBeenCalledWith(interval.handle); + }) + + it('should NOT call clearInterval', () => { + service.handleInterval(createEmptyStateResource(true), interval); + + expect(service.clearInterval).not.toHaveBeenCalled(); + }) + }) + describe('getAndUpdate', () => { beforeEach(() => { @@ -146,6 +149,25 @@ describe('CommandService', () => { }) }) + describe('get command', () => { + + beforeEach(() => { + repository.getCommand.mockReturnValue(cold('a', { a: commandResource })); + }) + + it('should call repository with resource', () => { + service.getCommand(commandResource); + + expect(repository.getCommand).toHaveBeenCalledWith(commandResource); + }) + + it('should return value', () => { + const result = service.getCommand(commandResource); + + expect(result).toBeObservable(hot('a', { a: commandResource })) + }) + }) + describe('get effected resource', () => { const listResource = {}; @@ -167,4 +189,42 @@ describe('CommandService', () => { expect(result).toBeObservable(hot('a', { a: listResource })) }) }) + + describe('get pending commands', () => { + + const listResource = {}; + + beforeEach(() => { + repository.getPendingCommands.mockReturnValue(cold('a', { a: listResource })); + }) + + it('should call repository', () => { + service.getPendingCommands(command, CommandLinkRel.SELF); + + expect(repository.getPendingCommands).toHaveBeenLastCalledWith(command, CommandLinkRel.SELF); + }) + }) + + describe('start interval', () => { + + const intervall: number = 100; + + it('should not be null', () => { + var result = startInterval(intervall); + + expect(result).not.toBeNull(); + }) + + it('should have handle not null', () => { + var result = startInterval(intervall); + + expect(result.handle).not.toBeNull(); + }) + + it('should have tick as observable', () => { + var result = startInterval(intervall); + + expect(result.tickObservable).toBeInstanceOf(Observable); + }) + }) }) \ No newline at end of file diff --git a/goofy-client/libs/command-shared/src/lib/command.service.ts b/goofy-client/libs/command-shared/src/lib/command.service.ts index 9d1a2cec8d..ba2bb3d5c2 100644 --- a/goofy-client/libs/command-shared/src/lib/command.service.ts +++ b/goofy-client/libs/command-shared/src/lib/command.service.ts @@ -34,12 +34,14 @@ export class CommandService { const interval: IntervallHandleWithTickObservable = startInterval(this.intervalTimer); return interval.tickObservable.pipe( flatMap(() => this.getAndUpdate(commandResource)), - tap(stateResource => { - if (!stateResource.loading) this.clearInterval(interval.handle); - }) + tap(stateResource => this.handleInterval(stateResource, interval)) ) } + handleInterval(stateResource: StateResource<CommandResource>, interval: IntervallHandleWithTickObservable): void { + if (!stateResource.loading) this.clearInterval(interval.handle); + } + getAndUpdate(commandResource: CommandResource): Observable<StateResource<CommandResource>> { return this.getCommand(commandResource).pipe(map(res => createStateResource(res, isPending(res)))); } diff --git a/goofy-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts b/goofy-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts index 9ca5624811..19df3e730e 100644 --- a/goofy-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts +++ b/goofy-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts @@ -143,6 +143,19 @@ describe('ForwardingService', () => { }) }) + describe('clear forward command', () => { + + beforeEach(() => { + service.unsubscribe = jest.fn(); + }) + + it('should call vorgang service clear pending forward command', () => { + service.clearForwardCommand(); + + expect(vorgangService.clearPendingForwardCommand).toHaveBeenCalled(); + }) + }) + describe('onNavigation', () => { beforeEach(() => { diff --git a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.spec.ts b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.spec.ts index c84a227e15..e165ca83d9 100644 --- a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.spec.ts +++ b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.spec.ts @@ -6,6 +6,7 @@ import { MatInputModule } from '@angular/material/input'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { mock } from '@goofy-client/test-utils'; import { ButtonWithSpinnerComponent, TextEditorComponent } from '@goofy-client/ui'; +import { VorgangWithEingangResource } from '@goofy-client/vorgang-shared'; import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang'; import { MockComponent } from 'ng-mocks'; import { VorgangForwardFormComponent } from './vorgang-forward-form.component'; @@ -20,7 +21,9 @@ describe('VorgangForwardFormComponent', () => { [VorgangForwardFormService.FIELD_EMAIL]: new FormControl(null) }); - const vorgangForwardFormService = { ...mock(VorgangForwardFormComponent), form }; + const formService = { ...mock(VorgangForwardFormService), form }; + + const vorgangWithEingang: VorgangWithEingangResource = createVorgangWithEingangResource(); beforeEach(async () => { await TestBed.configureTestingModule({ @@ -39,7 +42,7 @@ describe('VorgangForwardFormComponent', () => { providers: [ { provide: VorgangForwardFormService, - useValue: vorgangForwardFormService + useValue: formService } ] }).compileComponents(); @@ -48,11 +51,49 @@ describe('VorgangForwardFormComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(VorgangForwardFormComponent); component = fixture.componentInstance; - component.vorgang = createVorgangWithEingangResource(); + component.vorgang = vorgangWithEingang; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); + + describe('zustaendige stelle email exists', () => { + + it('should return false if vorgang is undefined', () => { + component.vorgang = undefined; + + var result: boolean = component.zustaendigeStelleEmailExists(); + + expect(result).toBeFalsy(); + }) + + it('should return true if exists', () => { + component.vorgang = vorgangWithEingang; + + var result: boolean = component.zustaendigeStelleEmailExists(); + + expect(result).toBeTruthy(); + }) + + it('should return false if NOT exists', () => { + component.vorgang = { ...vorgangWithEingang, eingang: { ...vorgangWithEingang.eingang, zustaendigeStelle: { email: null } } }; + + var result: boolean = component.zustaendigeStelleEmailExists(); + + expect(result).toBeFalsy(); + }) + }) + + describe('patch email field', () => { + + it('should set email', () => { + component.vorgang = vorgangWithEingang; + + component.patchEmail(); + + expect(formService.patchField).toHaveBeenCalledWith('email', vorgangWithEingang.eingang.zustaendigeStelle.email); + }) + }) }); diff --git a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.ts b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.ts index cf9e7aa28a..f4813b8240 100644 --- a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.ts +++ b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward-form.component.ts @@ -2,8 +2,9 @@ import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from import { FormGroup } from '@angular/forms'; import { CommandResource } from '@goofy-client/command-shared'; import { StateResource } from '@goofy-client/tech-shared'; -import { VorgangForwardFormService } from './vorgang-forward.formservice'; import { VorgangWithEingangResource } from '@goofy-client/vorgang-shared'; +import { isNil } from 'lodash-es'; +import { VorgangForwardFormService } from './vorgang-forward.formservice'; @Component({ selector: 'goofy-client-vorgang-forward-form', @@ -21,13 +22,21 @@ export class VorgangForwardFormComponent implements OnChanges { constructor(private formService: VorgangForwardFormService) { } - get form(): FormGroup { - return this.formService.form; - } - ngOnChanges(changes: SimpleChanges) { - if (changes.vorgang && this.vorgang && this.vorgang.eingang && this.vorgang.eingang.zustaendigeStelle && this.vorgang.eingang.zustaendigeStelle.email) { - this.formService.patchField('email', this.vorgang.eingang.zustaendigeStelle.email) + if (changes.vorgang && this.zustaendigeStelleEmailExists()) { + this.patchEmail(); } } + + zustaendigeStelleEmailExists(): boolean { + return this.vorgang && this.vorgang.eingang && this.vorgang.eingang.zustaendigeStelle && !isNil(this.vorgang.eingang.zustaendigeStelle.email); + } + + patchEmail(): void { + this.formService.patchField('email', this.vorgang.eingang.zustaendigeStelle.email) + } + + get form(): FormGroup { + return this.formService.form; + } } diff --git a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.spec.ts b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.spec.ts index ad0961443f..579b1794ae 100644 --- a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.spec.ts +++ b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.spec.ts @@ -1,4 +1,4 @@ -import { FormBuilder } from '@angular/forms'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; import { ForwardingService } from '@goofy-client/forwarding-shared'; import { mock, useFromMock } from '@goofy-client/test-utils'; import { createVorgangResource } from 'libs/vorgang-shared/test/vorgang'; @@ -38,4 +38,24 @@ describe('VorgangForwardFormService', () => { expect(service.forward).toHaveBeenCalledWith(formService.vorgang, formService.form.value); }) }) + + describe('patch field', () => { + + const controlName: string = 'testField'; + const value: string = 'testField'; + + const form: FormGroup = <any>{ + controls: { + [controlName]: new FormControl() + } + }; + + it('should set control value', () => { + formService.form = form; + + formService.patchField(controlName, value); + + expect(formService.form.controls[controlName].value).toEqual(value); + }) + }) }) \ No newline at end of file diff --git a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.ts b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.ts index d18e35eb33..76beef369c 100644 --- a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.ts +++ b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forward-formular/vorgang-forward-form/vorgang-forward.formservice.ts @@ -20,10 +20,6 @@ export class VorgangForwardFormService extends AbstractFormService { super(formBuilder); } - patchField(fieldName: string, value: string) { - this.form.controls[fieldName].patchValue(value); - } - protected initForm(): FormGroup { return this.formBuilder.group({ [VorgangForwardFormService.FIELD_EMAIL]: new FormControl(), @@ -42,4 +38,8 @@ export class VorgangForwardFormService extends AbstractFormService { protected doSubmit(): Observable<StateResource<CommandResource>> { return this.forwardingService.forward(this.vorgang, this.getFormValue()); } + + patchField(fieldName: string, value: string) { + this.form.controls[fieldName].patchValue(value); + } } diff --git a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forwarding-container.component.spec.ts b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forwarding-container.component.spec.ts index 2e5de9301a..1c737cc1bb 100644 --- a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forwarding-container.component.spec.ts +++ b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-container/vorgang-forwarding-container.component.spec.ts @@ -19,8 +19,8 @@ describe('VorgangForwardingContainerComponent', () => { let component: VorgangForwardingContainerComponent; let fixture: ComponentFixture<VorgangForwardingContainerComponent>; - const forwardFormService = mock(VorgangForwardFormService); - const forwardingService = mock(ForwardingService); + const formService = mock(VorgangForwardFormService); + const service = mock(ForwardingService); const forwarding: string = '[data-test-id="forwarding"]'; @@ -38,11 +38,11 @@ describe('VorgangForwardingContainerComponent', () => { FormBuilder, { provide: VorgangForwardFormService, - useValue: forwardFormService + useValue: formService }, { provide: ForwardingService, - useValue: forwardingService + useValue: service } ] }) @@ -60,6 +60,33 @@ describe('VorgangForwardingContainerComponent', () => { expect(component).toBeTruthy(); }); + describe('ngOnChanges', () => { + + it('should call update vorgang', () => { + component.updateVorgang = jest.fn(); + + component.ngOnChanges(); + + expect(component.updateVorgang).toHaveBeenCalled(); + }) + + it('should call get forwardings', () => { + component.getForwardings = jest.fn(); + + component.ngOnChanges(); + + expect(component.getForwardings).toHaveBeenCalled(); + }) + + it('should call get pending forward command', () => { + component.getPendingForwardCommand = jest.fn(); + + component.ngOnChanges(); + + expect(component.getPendingForwardCommand).toHaveBeenCalled(); + }) + }) + describe('getForwardings', () => { it('should do nothing if link not exists', () => { @@ -68,7 +95,7 @@ describe('VorgangForwardingContainerComponent', () => { component.getForwardings(); - expect(forwardingService.getForwardings).not.toHaveBeenCalled(); + expect(service.getForwardings).not.toHaveBeenCalled(); }) it('should call service get forward commands', () => { @@ -77,7 +104,7 @@ describe('VorgangForwardingContainerComponent', () => { component.getForwardings(); - expect(forwardingService.getForwardings).toHaveBeenCalled(); + expect(service.getForwardings).toHaveBeenCalled(); }) }) @@ -89,7 +116,7 @@ describe('VorgangForwardingContainerComponent', () => { component.getPendingForwardCommand(); - expect(forwardingService.getPendingForwardCommand).toHaveBeenCalled(); + expect(service.getPendingForwardCommand).toHaveBeenCalled(); }) }) diff --git a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-zustellen-container/vorgang-forward-zustellen-container.component.spec.ts b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-zustellen-container/vorgang-forward-zustellen-container.component.spec.ts index a9dd1f5998..aba4ca4664 100644 --- a/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-zustellen-container/vorgang-forward-zustellen-container.component.spec.ts +++ b/goofy-client/libs/forwarding/src/lib/vorgang-forwarding-zustellen-container/vorgang-forward-zustellen-container.component.spec.ts @@ -50,7 +50,7 @@ describe('VorgangForwardZustellenContainerComponent', () => { expect(component).toBeTruthy(); }); - it('should call service', () => { + it('should call service mark as success', () => { component.forwarding = forwarding; fixture.detectChanges(); @@ -59,6 +59,15 @@ describe('VorgangForwardZustellenContainerComponent', () => { expect(forwardingService.markAsSuccess).toHaveBeenCalledWith(forwarding); }) + it('should call service mark as fail', () => { + component.forwarding = forwarding; + fixture.detectChanges(); + + component.markAsFail(); + + expect(forwardingService.markAsFail).toHaveBeenCalledWith(forwarding); + }) + describe('mark as success button', () => { it('should be visible', () => { diff --git a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.spec.ts b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.spec.ts index 3bb8c01eb7..5ee97fa271 100644 --- a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.spec.ts +++ b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.spec.ts @@ -14,8 +14,8 @@ describe('KommentarFormComponent', () => { let component: KommentarFormComponent; let fixture: ComponentFixture<KommentarFormComponent>; - const kommentarFormService = mock(KommentarFormService); - const kommetarService = mock(KommentarService); + const formService = mock(KommentarFormService); + const service = mock(KommentarService); configureTestSuite(() => { TestBed.configureTestingModule({ @@ -32,11 +32,11 @@ describe('KommentarFormComponent', () => { providers: [ { provide: KommentarFormService, - useValue: kommentarFormService + useValue: formService }, { provide: KommentarService, - useValue: kommetarService + useValue: service } ] }) diff --git a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.ts b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.ts index 73eedcf1f0..60506f91b4 100644 --- a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.ts +++ b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-form/kommentar-form.component.ts @@ -25,7 +25,13 @@ export class KommentarFormComponent implements OnChanges { constructor(public formService: KommentarFormService) { } ngOnChanges(): void { - if (!isNil(this.kommentar)) this.formService.patch(this.kommentar); + if (!isNil(this.kommentar)) { + this.patch(); + } + } + + patch(): void { + this.formService.patch(this.kommentar); } submit(): void { diff --git a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang-container.component.spec.ts b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang-container.component.spec.ts index cf2c088774..1d829b8cc5 100644 --- a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang-container.component.spec.ts +++ b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang-container.component.spec.ts @@ -41,4 +41,37 @@ describe('KommentarListInVorgangContainerComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + describe('ng on changes', () => { + + it('should call kommentar service isFormularVisible', () => { + component.ngOnChanges(); + + expect(kommentarService.isFormularVisible).toHaveBeenCalled(); + }) + + it('should call kommentar service getKommentareByVorgang', () => { + component.ngOnChanges(); + + expect(kommentarService.getKommentareByVorgang).toHaveBeenCalledWith(component.vorgang); + }) + }) + + describe('show formular', () => { + + it('should call kommentar service showFormular', () => { + component.showFormular(); + + expect(kommentarService.showFormular).toHaveBeenCalled(); + }) + }) + + describe('hide formular', () => { + + it('should call kommentar service hideFormular', () => { + component.hideFormular(); + + expect(kommentarService.hideFormular).toHaveBeenCalled(); + }) + }) }); \ No newline at end of file diff --git a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-in-vorgang.component.ts b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-in-vorgang.component.ts index f988ec8b93..b2b1ad780b 100644 --- a/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-in-vorgang.component.ts +++ b/goofy-client/libs/kommentar/src/lib/kommentar-list-in-vorgang-container/kommentar-list-in-vorgang/kommentar-list-in-vorgang.component.ts @@ -15,6 +15,10 @@ export class KommentarListInVorgangComponent implements OnChanges { kommentare: KommentarResource[]; ngOnChanges(): void { - this.kommentare = this.kommentarListStateResource ? getEmbeddedResource(this.kommentarListStateResource, KommentarListLinkRel.KOMMENTAR_LIST) : []; + this.kommentare = this.getKommentare(); + } + + getKommentare(): KommentarResource[] { + return this.kommentarListStateResource ? getEmbeddedResource(this.kommentarListStateResource, KommentarListLinkRel.KOMMENTAR_LIST) : []; } } \ No newline at end of file diff --git a/goofy-client/libs/ozg-file-shared/src/lib/ozg-file.repository.spec.ts b/goofy-client/libs/ozg-file-shared/src/lib/ozg-file.repository.spec.ts index 2046c2c7f2..aeab887885 100644 --- a/goofy-client/libs/ozg-file-shared/src/lib/ozg-file.repository.spec.ts +++ b/goofy-client/libs/ozg-file-shared/src/lib/ozg-file.repository.spec.ts @@ -1,6 +1,6 @@ import { HttpClient, HttpHeaders } from '@angular/common/http'; import { mock, useFromMock } from '@goofy-client/test-utils'; -import { getUrl, ResourceFactory } from '@ngxp/rest'; +import { getUrl, ResourceFactory, ResourceUri } from '@ngxp/rest'; import { cold, hot } from 'jest-marbles'; import { createOzgFileListResource, createOzgFileResource } from 'libs/ozg-file-shared/test/ozg-file'; import { WiedervorlageLinkRel } from 'libs/wiedervorlage-shared/src/lib/wiedervorlage.linkrel'; @@ -20,6 +20,7 @@ describe('OzgFileRepository', () => { repository = new OzgFileRepository(useFromMock(httpClient), useFromMock(resourceFactory)); resourceFactory.from.mockReturnValue(resourceWrapper); + resourceFactory.fromId.mockReturnValue(resourceWrapper); }) describe('download', () => { @@ -90,4 +91,21 @@ describe('OzgFileRepository', () => { expect(resourceWrapper.get).toHaveBeenCalledWith(WiedervorlageLinkRel.ATTACHMENTS); }) }) + + describe('get file', () => { + + const uri: ResourceUri = getUrl(createOzgFileResource()); + + it('should call repository factory', () => { + repository.getFile(uri); + + expect(resourceFactory.fromId).toHaveBeenCalledWith(uri); + }) + + it('should call repository wrapper', () => { + repository.getFile(uri); + + expect(resourceWrapper.get).toHaveBeenCalled(); + }) + }) }) \ No newline at end of file diff --git a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts index 4a85dbc1ff..5e680f08ab 100644 --- a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts +++ b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts @@ -90,8 +90,12 @@ describe('AnhangListContainerComponent', () => { }) }) - function setVorgang(vorgang: VorgangWithEingangResource): void { - component.vorgangWithEingang = vorgang; - fixture.detectChanges(); - } -}); + describe('ng on changes', () => { + + it('should call vorgang service getAttachments', () => { + component.ngOnChanges(); + + expect(vorgangService.getAttachments).toHaveBeenCalled(); + }) + }) +}); \ No newline at end of file diff --git a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.ts b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.ts index 28f1b96b4e..6ed57be641 100644 --- a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.ts +++ b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.ts @@ -18,9 +18,7 @@ export class AnhangListContainerComponent implements OnChanges { readonly fileListRel = OzgFileListLinkRel; - constructor( - private vorgangService: VorgangService - ) { } + constructor(private vorgangService: VorgangService) { } ngOnChanges(): void { this.attachmentStateResource$ = this.vorgangService.getAttachments(); diff --git a/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts b/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts index 6a96c29829..89b711b5f8 100644 --- a/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts +++ b/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts @@ -1,5 +1,5 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { OzgFileService } from '@goofy-client/ozg-file-shared'; +import { OzgFileResource, OzgFileService } from '@goofy-client/ozg-file-shared'; import { ConvertForDataTestPipe } from '@goofy-client/tech-shared'; import { mock } from '@goofy-client/test-utils'; import { createOzgFileResource } from 'libs/ozg-file-shared/test/ozg-file'; @@ -11,7 +11,7 @@ describe('FileContainerComponent', () => { let component: OzgFileContainerComponent; let fixture: ComponentFixture<OzgFileContainerComponent>; - const fileService = mock(OzgFileService); + const service = mock(OzgFileService); beforeEach(async () => { await TestBed.configureTestingModule({ @@ -23,7 +23,7 @@ describe('FileContainerComponent', () => { providers: [ { provide: OzgFileService, - useValue: fileService + useValue: service } ] }) @@ -41,4 +41,15 @@ describe('FileContainerComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + describe('start download', () => { + + const file: OzgFileResource = createOzgFileResource(); + + it('should call file service downloadFile', () => { + component.startDownload(file); + + expect(service.downloadFile).toHaveBeenCalledWith(file); + }) + }) }); diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts index 52b93d59e6..bde60f8b43 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/abschliessen-button/abschliessen-button.component.spec.ts @@ -46,6 +46,15 @@ describe('AbschliessenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('abschliessen', () => { + + it('should call vorgang service', () => { + component.abschliessen(); + + expect(vorgangCommandService.abschliessen).toHaveBeenCalled(); + }) + }) + describe('abschliessen button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/annehmen-button/annehmen-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/annehmen-button/annehmen-button.component.spec.ts index 19b00f92bf..e14e4e795b 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/annehmen-button/annehmen-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/annehmen-button/annehmen-button.component.spec.ts @@ -46,6 +46,15 @@ describe('AnnehmenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('annehmen', () => { + + it('should call vorgang service', () => { + component.annehmen(); + + expect(vorgangCommandService.annehmen).toHaveBeenCalled(); + }) + }) + describe('annehmen button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/bearbeiten-button/bearbeiten-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/bearbeiten-button/bearbeiten-button.component.spec.ts index c2c92cec69..f6c1d78554 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/bearbeiten-button/bearbeiten-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/bearbeiten-button/bearbeiten-button.component.spec.ts @@ -46,6 +46,15 @@ describe('BearbeitenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('bearbeiten', () => { + + it('should call vorgang service', () => { + component.bearbeiten(); + + expect(vorgangCommandService.bearbeiten).toHaveBeenCalled(); + }) + }) + describe('bearbeiten button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts index 50c108f9ff..d895e2e93c 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/bescheiden-button/bescheiden-button.component.spec.ts @@ -46,6 +46,15 @@ describe('BescheidenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('bescheiden', () => { + + it('should call vorgang service', () => { + component.bescheiden(); + + expect(vorgangCommandService.bescheiden).toHaveBeenCalled(); + }) + }) + describe('bescheiden button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/verwerfen-button/verwerfen-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/verwerfen-button/verwerfen-button.component.spec.ts index d50f1ba4a8..5b4ce073aa 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/verwerfen-button/verwerfen-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/verwerfen-button/verwerfen-button.component.spec.ts @@ -46,6 +46,15 @@ describe('VerwerfenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('verwerfen', () => { + + it('should call vorgang service', () => { + component.verwerfen(); + + expect(vorgangCommandService.verwerfen).toHaveBeenCalled(); + }) + }) + describe('verwerfen button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/wiedereroeffnen-button/wiedereroeffnen-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/wiedereroeffnen-button/wiedereroeffnen-button.component.spec.ts index 2f2a5ebd1b..163370944c 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/wiedereroeffnen-button/wiedereroeffnen-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/wiedereroeffnen-button/wiedereroeffnen-button.component.spec.ts @@ -45,6 +45,15 @@ describe('WiedereroeffnenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('wiedereroeffnen', () => { + + it('should call vorgang service', () => { + component.wiedereroeffnen(); + + expect(vorgangCommandService.wiedereroeffnen).toHaveBeenCalled(); + }) + }) + describe('wiedereroeffnen button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckholen-button/zurueckholen-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckholen-button/zurueckholen-button.component.spec.ts index 4eeccc76c0..5af1a1d6cd 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckholen-button/zurueckholen-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckholen-button/zurueckholen-button.component.spec.ts @@ -46,6 +46,15 @@ describe('ZurueckholenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('zurueckholen', () => { + + it('should call vorgang service', () => { + component.zurueckholen(); + + expect(vorgangCommandService.zurueckholen).toHaveBeenCalled(); + }) + }) + describe('zurueckholen button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckstellen-button/zurueckstellen-button.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckstellen-button/zurueckstellen-button.component.spec.ts index 0dc8461f88..ae9b7e3420 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckstellen-button/zurueckstellen-button.component.spec.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/buttons/zurueckstellen-button/zurueckstellen-button.component.spec.ts @@ -46,6 +46,15 @@ describe('ZurueckstellenButtonComponent', () => { expect(component).toBeTruthy(); }); + describe('zurueckstellen', () => { + + it('should call vorgang service', () => { + component.zurueckstellen(); + + expect(vorgangCommandService.zurueckstellen).toHaveBeenCalled(); + }) + }) + describe('zurueckstellen button', () => { beforeEach(() => { diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-body/form-data-table/form-data-table.component.ts b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-body/form-data-table/form-data-table.component.ts index c80a5ef3af..fc93be8ccd 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-body/form-data-table/form-data-table.component.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-area/vorgang-detail-body/form-data-table/form-data-table.component.ts @@ -1,24 +1,24 @@ -import { Component, Input } from '@angular/core'; import { KeyValue } from '@angular/common'; +import { Component, Input } from '@angular/core'; @Component({ - selector: 'goofy-client-form-data-table', - templateUrl: './form-data-table.component.html', - styleUrls: ['./form-data-table.component.scss'] + selector: 'goofy-client-form-data-table', + templateUrl: './form-data-table.component.html', + styleUrls: ['./form-data-table.component.scss'] }) export class FormDataTableComponent { - @Input() formData: ReadonlyMap<number,string> | object; + @Input() formData: ReadonlyMap<number, string> | object; - objectToBottom = (a: KeyValue<number,string>, b: KeyValue<number,string>): number => { + objectToBottom = (a: KeyValue<number, string>, b: KeyValue<number, string>): number => { return this.isObject(a.value) ? 0 : -1; } - originalOrder = (a: KeyValue<number,string>, b: KeyValue<number,string>): number => { + originalOrder = (a: KeyValue<number, string>, b: KeyValue<number, string>): number => { return 0; } isObject(value: any) { return typeof value === 'object'; } -} +} \ No newline at end of file diff --git a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list-container.component.spec.ts b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list-container.component.spec.ts index c194ae6a2e..cccafdd2a6 100644 --- a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list-container.component.spec.ts +++ b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list-container.component.spec.ts @@ -36,4 +36,13 @@ describe('VorgangListContainerComponent', () => { it('should create', () => { expect(component).toBeTruthy(); }); + + describe('load next page', () => { + + it('should call vorgang list service loadNextPage', () => { + component.loadNextPage(); + + expect(vorgangListService.loadNextPage).toHaveBeenCalled(); + }) + }) }); \ No newline at end of file diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts index 7850da47ad..787bf584ae 100644 --- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts +++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts @@ -83,21 +83,15 @@ export class WiedervorlageFormService extends AbstractFormService implements OnD } public addAttachment(attachment: OzgFileResource): void { - /* this.attachments.next({ ...this.attachments.value, loading: true }); - setTimeout(() => { */ let attachments = this.attachments.value; attachments.resource.push(attachment); this.attachments.next(createStateResource(attachments.resource)); - //}, 200); } public deleteAttachment(attachment: OzgFileResource): void { - /* this.attachments.next({ ...this.attachments.value, loading: true }); - setTimeout(() => { */ let attachments = this.attachments.value; attachments.resource.splice(attachments.resource.indexOf(attachment), 1); this.attachments.next(createStateResource(attachments.resource)); - //}, 200); } ngOnDestroy(): void { -- GitLab