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

OZG-5326 switch to old bescheid implementation

parent 1dc6725d
No related branches found
No related tags found
No related merge requests found
...@@ -21,21 +21,17 @@ ...@@ -21,21 +21,17 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen * Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen. * unter der Lizenz sind dem Lizenztext zu entnehmen.
*/ */
import { BescheidService } from '@alfa-client/bescheid-shared'; import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
import { CommandResource } from '@alfa-client/command-shared'; import { CommandResource } from '@alfa-client/command-shared';
import { import { HasLinkPipe, StateResource, createEmptyStateResource, createStateResource } from '@alfa-client/tech-shared';
createEmptyStateResource,
createStateResource,
HasLinkPipe,
StateResource,
} from '@alfa-client/tech-shared';
import { mock } from '@alfa-client/test-utils'; import { mock } from '@alfa-client/test-utils';
import { import {
IconButtonWithSpinnerComponent, IconButtonWithSpinnerComponent,
OzgcloudDialogService, OzgcloudDialogService,
OzgcloudStrokedButtonWithSpinnerComponent, OzgcloudStrokedButtonWithSpinnerComponent,
} from '@alfa-client/ui'; } from '@alfa-client/ui';
import { VorgangCommandService, VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; import { BescheidenDialogData } from '@alfa-client/vorgang-detail';
import { VorgangCommandService, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { DialogRef } from '@angular/cdk/dialog'; import { DialogRef } from '@angular/cdk/dialog';
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { createCommandResource } from 'libs/command-shared/test/command'; import { createCommandResource } from 'libs/command-shared/test/command';
...@@ -43,7 +39,7 @@ import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; ...@@ -43,7 +39,7 @@ import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang'; import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
import { MockComponent } from 'ng-mocks'; import { MockComponent } from 'ng-mocks';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { BescheidWizardContainerComponent } from '../../../../../bescheid/src/lib/bescheid-wizard-container/bescheid-wizard-container.component'; import { createBescheidResource } from '../../../../../bescheid-shared/src/test/bescheid';
import { VorgangDetailBescheidenComponent } from '../../vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component'; import { VorgangDetailBescheidenComponent } from '../../vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden.component';
import { BescheidenButtonComponent } from './bescheiden-button.component'; import { BescheidenButtonComponent } from './bescheiden-button.component';
...@@ -171,9 +167,7 @@ describe('BescheidenButtonComponent', () => { ...@@ -171,9 +167,7 @@ describe('BescheidenButtonComponent', () => {
describe('should open bescheid wizard', () => { describe('should open bescheid wizard', () => {
beforeEach(() => { beforeEach(() => {
component.openBescheidenWizard = jest.fn(); component.openBescheidenWizard = jest.fn();
component.vorgang = createVorgangWithEingangResource([ component.vorgang = createVorgangWithEingangResource([VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT]);
VorgangWithEingangLinkRel.CREATE_BESCHEID_DRAFT,
]);
}); });
it('should open bescheid wizard when create bescheid draft link exists', () => { it('should open bescheid wizard when create bescheid draft link exists', () => {
...@@ -191,9 +185,7 @@ describe('BescheidenButtonComponent', () => { ...@@ -191,9 +185,7 @@ describe('BescheidenButtonComponent', () => {
describe('should do bescheiden', () => { describe('should do bescheiden', () => {
const command: CommandResource = createCommandResource(); const command: CommandResource = createCommandResource();
const comandStateResource$: Observable<StateResource<CommandResource>> = of( const comandStateResource$: Observable<StateResource<CommandResource>> = of(createStateResource(command));
createStateResource(command),
);
beforeEach(() => { beforeEach(() => {
vorgangCommandService.bescheiden.mockReturnValue(comandStateResource$); vorgangCommandService.bescheiden.mockReturnValue(comandStateResource$);
...@@ -240,17 +232,123 @@ describe('BescheidenButtonComponent', () => { ...@@ -240,17 +232,123 @@ describe('BescheidenButtonComponent', () => {
}); });
}); });
// Use this version after completed Bescheid refactoring and delete the other version below.
// describe('openBescheidenWizard', () => {
// it('should open wizard dialog', () => {
// const vorgang = createVorgangWithEingangResource();
// component.vorgang = vorgang;
//
// component.openBescheidenWizard();
//
// expect(ozgcloudDialogService.openWizard).toHaveBeenCalledWith(
// BescheidWizardContainerComponent,
// { vorgangWithEingangResource: vorgang },
// );
// });
// });
describe('openBescheidenWizard', () => { describe('openBescheidenWizard', () => {
it('should open wizard dialog', () => { it('should init', () => {
const vorgang = createVorgangWithEingangResource(); component.openBescheidenWizard();
component.vorgang = vorgang;
expect(bescheidService.init).toBeCalled();
});
it('should open bescheiden dialog with existing draft', () => {
component.vorgang = createVorgangWithEingangResource([VorgangWithEingangLinkRel.BESCHEID_DRAFT]);
component.openBescheidenDialogWithExistingDraft = jest.fn();
component.openBescheidenWizard(); component.openBescheidenWizard();
expect(ozgcloudDialogService.openWizard).toHaveBeenCalledWith( expect(component.openBescheidenDialogWithExistingDraft).toHaveBeenCalled();
BescheidWizardContainerComponent, });
{ vorgangWithEingangResource: vorgang },
it('should open bescheiden dialog with new draft', () => {
component.vorgang = createVorgangWithEingangResource();
component.openBescheidDialogWithNewDraft = jest.fn();
component.openBescheidenWizard();
expect(component.openBescheidDialogWithNewDraft).toHaveBeenCalled();
});
});
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));
ozgcloudDialogService.openWizard;
});
it('should call ozgcloudDialogService.openWizard', () => {
component.openDialog(dialogData);
expect(ozgcloudDialogService.openWizard).toHaveBeenCalledWith(VorgangDetailBescheidenComponent, dialogData);
}); });
}); });
}); });
...@@ -21,15 +21,16 @@ ...@@ -21,15 +21,16 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen * Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen. * unter der Lizenz sind dem Lizenztext zu entnehmen.
*/ */
import { BescheidWizardContainerComponent } from '@alfa-client/bescheid'; import { BescheidResource, BescheidService } from '@alfa-client/bescheid-shared';
import { CommandResource } from '@alfa-client/command-shared'; import { CommandResource } from '@alfa-client/command-shared';
import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared'; import { StateResource, createEmptyStateResource, isLoaded } from '@alfa-client/tech-shared';
import { OzgcloudDialogService } from '@alfa-client/ui'; import { OzgcloudDialogService } from '@alfa-client/ui';
import { VorgangCommandService, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared'; import { VorgangCommandService, VorgangWithEingangLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
import { Component, Input, OnInit } from '@angular/core'; import { Component, Input, OnInit } from '@angular/core';
import { hasLink } from '@ngxp/rest'; import { hasLink } from '@ngxp/rest';
import { Observable, of } from 'rxjs'; import { Observable, filter, first, map, of } from 'rxjs';
import { BescheidenDialogData } from '../../vorgang-detail-page/vorgang-detail-bescheiden/bescheiden.model'; 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({ @Component({
selector: 'alfa-bescheiden-button', selector: 'alfa-bescheiden-button',
...@@ -57,6 +58,7 @@ export class BescheidenButtonComponent implements OnInit { ...@@ -57,6 +58,7 @@ export class BescheidenButtonComponent implements OnInit {
constructor( constructor(
private vorgangCommandService: VorgangCommandService, private vorgangCommandService: VorgangCommandService,
private ozgcloudDialogService: OzgcloudDialogService, private ozgcloudDialogService: OzgcloudDialogService,
private bescheidService: BescheidService,
) {} ) {}
ngOnInit(): void { ngOnInit(): void {
...@@ -78,10 +80,54 @@ export class BescheidenButtonComponent implements OnInit { ...@@ -78,10 +80,54 @@ export class BescheidenButtonComponent implements OnInit {
); );
} }
// Use this version after completed Bescheid refactoring and delete the other version below.
// public openBescheidenWizard(): void {
// const dialogData: BescheidenDialogData = { vorgangWithEingangResource: this.vorgang };
// this.ozgcloudDialogService.openWizard<BescheidWizardContainerComponent, BescheidenDialogData>(
// BescheidWizardContainerComponent,
// dialogData,
// );
// }
public openBescheidenWizard(): void { public openBescheidenWizard(): void {
const dialogData: BescheidenDialogData = { vorgangWithEingangResource: this.vorgang }; this.bescheidService.init();
this.ozgcloudDialogService.openWizard<BescheidWizardContainerComponent, BescheidenDialogData>( if (hasLink(this.vorgang, VorgangWithEingangLinkRel.BESCHEID_DRAFT)) {
BescheidWizardContainerComponent, this.openBescheidenDialogWithExistingDraft();
} else {
this.openBescheidDialogWithNewDraft();
}
}
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, dialogData,
); );
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment