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

OZG-5151: fix delete bescheid on überspringen und abschliessen

parent 931376b3
Branches
Tags
No related merge requests found
Showing
with 46 additions and 58 deletions
......@@ -21,7 +21,7 @@ export class OzgcloudDialogService {
);
}
public open<T, D>(component: ComponentType<T>, data?: D): DialogRef<T> {
public open<T, D = undefined>(component: ComponentType<T>, data?: D): DialogRef<T> {
return this.openDialog(component, this.buildDialogConfigWithData(data));
}
......
......@@ -5,7 +5,3 @@ export interface BescheidenDialogData {
vorgangWithEingangResource: VorgangWithEingangResource;
bescheidDraftResource?: BescheidResource;
}
export interface BescheiderstellungUeberspringenDialogData {
vorgangWithEingangResource: VorgangWithEingangResource;
}
......@@ -3,25 +3,15 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { VorgangDetailBescheidenUeberspringenButtonComponent } from './vorgang-detail-bescheiden-ueberspringen-button.component';
import { OzgcloudDialogService } from '@alfa-client/ui';
import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component';
import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang-detail';
import { BescheidenFormService } from '../../../bescheiden.formservice';
import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang';
import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
let component: VorgangDetailBescheidenUeberspringenButtonComponent;
let fixture: ComponentFixture<VorgangDetailBescheidenUeberspringenButtonComponent>;
let ozgcloudDialogService: Mock<OzgcloudDialogService>;
let formService: Mock<BescheidenFormService>;
let vorgangWithEingangResource: VorgangWithEingangResource;
beforeEach(async () => {
ozgcloudDialogService = mock(OzgcloudDialogService);
formService = mock(BescheidenFormService);
vorgangWithEingangResource = createVorgangWithEingangResource();
formService.getVorgangWithEingangResource.mockReturnValue(vorgangWithEingangResource);
await TestBed.configureTestingModule({
declarations: [VorgangDetailBescheidenUeberspringenButtonComponent],
......@@ -30,10 +20,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
provide: OzgcloudDialogService,
useValue: ozgcloudDialogService,
},
{
provide: BescheidenFormService,
useValue: formService,
},
],
}).compileComponents();
......@@ -52,7 +38,6 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
expect(ozgcloudDialogService.open).toHaveBeenCalledWith(
VorgangDetailBescheidenUeberspringenDialogComponent,
{ vorgangWithEingangResource } as BescheiderstellungUeberspringenDialogData,
);
});
});
......
......@@ -2,8 +2,6 @@ import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { Component, Input } from '@angular/core';
import { OzgcloudDialogService } from '@alfa-client/ui';
import { VorgangDetailBescheidenUeberspringenDialogComponent } from '../vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component';
import { BescheidenFormService } from '../../../bescheiden.formservice';
import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang-detail';
@Component({
selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-button',
......@@ -13,17 +11,11 @@ import { BescheiderstellungUeberspringenDialogData } from '@alfa-client/vorgang-
export class VorgangDetailBescheidenUeberspringenButtonComponent {
@Input() vorgang: VorgangWithEingangResource;
constructor(
private readonly ozgcloudDialogService: OzgcloudDialogService,
private formService: BescheidenFormService,
) {}
constructor(private readonly ozgcloudDialogService: OzgcloudDialogService) {}
public onClick(): void {
this.ozgcloudDialogService.open<
this.ozgcloudDialogService.open<VorgangDetailBescheidenUeberspringenDialogComponent>(
VorgangDetailBescheidenUeberspringenDialogComponent,
BescheiderstellungUeberspringenDialogData
>(VorgangDetailBescheidenUeberspringenDialogComponent, {
vorgangWithEingangResource: this.formService.getVorgangWithEingangResource(),
});
);
}
}
import { Mock, mock } from '@alfa-client/test-utils';
import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing';
import { DialogRef } from '@angular/cdk/dialog';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { VorgangDetailBescheidenUeberspringenDialogComponent } from './vorgang-detail-bescheiden-ueberspringen-dialog.component';
import { MockComponent } from 'ng-mocks';
import { OzgcloudDialogService, OzgcloudStrokedButtonWithSpinnerComponent } from '@alfa-client/ui';
import { MatIcon } from '@angular/material/icon';
import { BescheidService } from '@alfa-client/bescheid-shared';
import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang';
import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { createCommandResource } from '../../../../../../../../command-shared/test/command';
import { of } from 'rxjs';
import { cold } from 'jest-marbles';
......@@ -18,7 +17,7 @@ import {
} from '@alfa-client/tech-shared';
import { CommandLinkRel } from '../../../../../../../../command-shared/src/lib/command.linkrel';
import { CommandResource } from '@alfa-client/command-shared';
import { BescheiderstellungUeberspringenDialogData } from '../../../bescheiden.model';
import { createVorgangWithEingangResource } from '../../../../../../../../vorgang-shared/test/vorgang';
describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
let component: VorgangDetailBescheidenUeberspringenDialogComponent;
......@@ -27,16 +26,13 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
let dialogRef: Mock<DialogRef>;
let bescheidService: Mock<BescheidService>;
let ozgcloudDialogService: Mock<OzgcloudDialogService>;
let dialogData: BescheiderstellungUeberspringenDialogData;
let vorgangWithEingangResource: VorgangWithEingangResource;
let vorgangService: Mock<VorgangService>;
beforeEach(async () => {
dialogRef = mock(DialogRef);
bescheidService = mock(BescheidService);
ozgcloudDialogService = mock(OzgcloudDialogService);
vorgangWithEingangResource = createVorgangWithEingangResource();
dialogData = { vorgangWithEingangResource };
vorgangService = mock(VorgangService);
await TestBed.configureTestingModule({
declarations: [
......@@ -58,8 +54,8 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
useValue: ozgcloudDialogService,
},
{
provide: DIALOG_DATA,
useValue: dialogData,
provide: VorgangService,
useValue: vorgangService,
},
],
}).compileComponents();
......@@ -82,23 +78,36 @@ describe('VorgangDetailBescheidenUeberspringenButtonComponent', () => {
});
describe('onConfirm', () => {
let vorgangWithEingangResource: VorgangWithEingangResource;
const successfullyDoneCommandStateResource: StateResource<CommandResource> =
createStateResource(createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]));
beforeEach(() => {
vorgangWithEingangResource = createVorgangWithEingangResource();
vorgangService.getVorgangWithEingang.mockReturnValue(
of(createStateResource(vorgangWithEingangResource)),
);
bescheidService.bescheidErstellungUeberspringen.mockReturnValue(
of(successfullyDoneCommandStateResource),
);
});
it('should call bescheid service erstellung ueberspringen', fakeAsync(() => {
it('should get vorgang with eingang', () => {
component.onConfirm();
tick();
expect(vorgangService.getVorgangWithEingang).toHaveBeenCalled();
});
it('should call bescheid service erstellung ueberspringen', (done) => {
component.onConfirm();
component.bescheiderstellungUeberspringen$.subscribe(() => {
expect(bescheidService.bescheidErstellungUeberspringen).toHaveBeenCalledWith(
vorgangWithEingangResource,
);
}));
done();
});
});
it('should close all dialogs on success', (done) => {
component.onConfirm();
......
import { Component, Inject } from '@angular/core';
import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';
import { Component } from '@angular/core';
import { DialogRef } from '@angular/cdk/dialog';
import { OzgcloudDialogService } from '@alfa-client/ui';
import { BescheidService } from '@alfa-client/bescheid-shared';
import { Observable } from 'rxjs';
import { filter, first, Observable, switchMap } from 'rxjs';
import { CommandResource, onCommandSuccessfullyDone } from '@alfa-client/command-shared';
import { StateResource } from '@alfa-client/tech-shared';
import { BescheiderstellungUeberspringenDialogData } from '../../../bescheiden.model';
import { isLoaded, StateResource } from '@alfa-client/tech-shared';
import { VorgangService } from '@alfa-client/vorgang-shared';
@Component({
selector: 'alfa-vorgang-detail-bescheiden-ueberspringen-dialog',
......@@ -18,7 +18,7 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent {
private readonly dialogRef: DialogRef,
private readonly bescheidService: BescheidService,
private readonly ozgcloudDialogService: OzgcloudDialogService,
@Inject(DIALOG_DATA) private readonly dialogData: BescheiderstellungUeberspringenDialogData,
private readonly vorgangService: VorgangService,
) {}
public onClose(): void {
......@@ -26,9 +26,15 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent {
}
public onConfirm(): void {
this.bescheiderstellungUeberspringen$ = this.bescheidService
.bescheidErstellungUeberspringen(this.dialogData.vorgangWithEingangResource)
.pipe(onCommandSuccessfullyDone(() => this.ozgcloudDialogService.closeAll()));
this.bescheiderstellungUeberspringen$ = this.vorgangService.getVorgangWithEingang().pipe(
filter((stateResource) => isLoaded(stateResource)),
first(),
switchMap((stateResource) =>
this.bescheidService
.bescheidErstellungUeberspringen(stateResource.resource)
.pipe(onCommandSuccessfullyDone(() => this.ozgcloudDialogService.closeAll())),
),
);
}
public onCancel(): void {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment