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

OZG-6376 OZG-6801 Fix bug on missing user info

parent 5262d8fe
No related branches found
No related tags found
No related merge requests found
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
import { import {
convertForDataTest, convertForDataTest,
ConvertForDataTestPipe, ConvertForDataTestPipe,
createEmptyStateResource, createStateResource,
EnumToLabelPipe, EnumToLabelPipe,
HasLinkPipe, HasLinkPipe,
ToResourceUriPipe, ToResourceUriPipe,
...@@ -32,7 +32,7 @@ import { ...@@ -32,7 +32,7 @@ import {
import { getElementFromFixture, mock } from '@alfa-client/test-utils'; import { getElementFromFixture, mock } from '@alfa-client/test-utils';
import { PostfachIconComponent } from '@alfa-client/ui'; import { PostfachIconComponent } from '@alfa-client/ui';
import { UserProfileInVorgangListItemContainerComponent } from '@alfa-client/user-profile'; import { UserProfileInVorgangListItemContainerComponent } from '@alfa-client/user-profile';
import { UserProfileService } from '@alfa-client/user-profile-shared'; import { UserProfileResource, UserProfileService } from '@alfa-client/user-profile-shared';
import { VorgangHeaderLinkRel, VorgangStatus } from '@alfa-client/vorgang-shared'; import { VorgangHeaderLinkRel, VorgangStatus } from '@alfa-client/vorgang-shared';
import { import {
AktenzeichenComponent, AktenzeichenComponent,
...@@ -52,6 +52,7 @@ import { MatIconTestingModule } from '@angular/material/icon/testing'; ...@@ -52,6 +52,7 @@ import { MatIconTestingModule } from '@angular/material/icon/testing';
import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTooltipModule } from '@angular/material/tooltip';
import { RouterTestingModule } from '@angular/router/testing'; import { RouterTestingModule } from '@angular/router/testing';
import { getDataTestClassOf, getDataTestIdOf } from 'libs/tech-shared/test/data-test'; import { getDataTestClassOf, getDataTestIdOf } from 'libs/tech-shared/test/data-test';
import { createUserProfileResource } from 'libs/user-profile-shared/test/user-profile';
import { createVorgangResource } from 'libs/vorgang-shared/test/vorgang'; import { createVorgangResource } from 'libs/vorgang-shared/test/vorgang';
import { MockComponent, MockModule } from 'ng-mocks'; import { MockComponent, MockModule } from 'ng-mocks';
import { of } from 'rxjs'; import { of } from 'rxjs';
...@@ -72,6 +73,8 @@ describe('VorgangListItemComponent', () => { ...@@ -72,6 +73,8 @@ describe('VorgangListItemComponent', () => {
const postfachStatus: string = getDataTestClassOf('postfach-icon'); const postfachStatus: string = getDataTestClassOf('postfach-icon');
const bescheidStatus: string = getDataTestIdOf('vorgang-list-item-bescheid-status'); const bescheidStatus: string = getDataTestIdOf('vorgang-list-item-bescheid-status');
const userProfile: UserProfileResource = createUserProfileResource();
beforeEach(async () => { beforeEach(async () => {
await TestBed.configureTestingModule({ await TestBed.configureTestingModule({
imports: [RouterTestingModule, MatIconTestingModule], imports: [RouterTestingModule, MatIconTestingModule],
...@@ -114,36 +117,48 @@ describe('VorgangListItemComponent', () => { ...@@ -114,36 +117,48 @@ describe('VorgangListItemComponent', () => {
}); });
describe('ngOnInit', () => { describe('ngOnInit', () => {
it('should build aria label', () => {
component.buildAriaLabel = jest.fn();
component.ngOnInit();
expect(component.buildAriaLabel).toHaveBeenCalled();
});
describe('user profile', () => { describe('user profile', () => {
beforeEach(() => { beforeEach(() => {
component.buildAriaLabel = jest.fn();
component.userProfileService.getAssignedUserProfile = jest component.userProfileService.getAssignedUserProfile = jest
.fn() .fn()
.mockReturnValue(of(createEmptyStateResource())); .mockReturnValue(of(createStateResource(userProfile)));
}); });
it('should not get profile if vorgang has no "assigned to" link', () => { describe('vorgang has no "assigned to" link', () => {
beforeEach(() => {
component.vorgang = createVorgangResource(); component.vorgang = createVorgangResource();
});
it('should not get profile', () => {
component.ngOnInit(); component.ngOnInit();
expect(component.userProfileService.getAssignedUserProfile).not.toHaveBeenCalled(); expect(component.userProfileService.getAssignedUserProfile).not.toHaveBeenCalled();
}); });
it('should get profile', () => { it('should build aria label without user profile resource', () => {
component.ngOnInit();
expect(component.buildAriaLabel).toHaveBeenCalledWith();
});
});
describe('vorgang has "assigned to" link', () => {
beforeEach(() => {
component.vorgang = createVorgangResource([VorgangHeaderLinkRel.ASSIGNED_TO]); component.vorgang = createVorgangResource([VorgangHeaderLinkRel.ASSIGNED_TO]);
});
it('should get profile', () => {
component.ngOnInit(); component.ngOnInit();
expect(component.userProfileService.getAssignedUserProfile).toHaveBeenCalled(); expect(component.userProfileService.getAssignedUserProfile).toHaveBeenCalled();
}); });
it('should build aria label with user profile resource', () => {
component.ngOnInit();
expect(component.buildAriaLabel).toHaveBeenCalledWith(userProfile);
});
});
}); });
}); });
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
* unter der Lizenz sind dem Lizenztext zu entnehmen. * unter der Lizenz sind dem Lizenztext zu entnehmen.
*/ */
import { import {
createEmptyStateResource,
EnumToLabelPipe, EnumToLabelPipe,
formatFullDateWithTimeWithoutSeconds, formatFullDateWithTimeWithoutSeconds,
formatToPrettyDate, formatToPrettyDate,
...@@ -53,7 +52,6 @@ export class VorgangListItemComponent implements OnInit { ...@@ -53,7 +52,6 @@ export class VorgangListItemComponent implements OnInit {
@Input() vorgang: VorgangResource; @Input() vorgang: VorgangResource;
readonly vorgangLinkRel = VorgangHeaderLinkRel; readonly vorgangLinkRel = VorgangHeaderLinkRel;
userProfile: StateResource<UserProfileResource> = createEmptyStateResource<UserProfileResource>();
public ariaLabel: string = ''; public ariaLabel: string = '';
...@@ -63,22 +61,25 @@ export class VorgangListItemComponent implements OnInit { ...@@ -63,22 +61,25 @@ export class VorgangListItemComponent implements OnInit {
if (hasLink(this.vorgang, VorgangHeaderLinkRel.ASSIGNED_TO)) { if (hasLink(this.vorgang, VorgangHeaderLinkRel.ASSIGNED_TO)) {
this.userProfileService this.userProfileService
.getAssignedUserProfile(this.vorgang, VorgangHeaderLinkRel.ASSIGNED_TO) .getAssignedUserProfile(this.vorgang, VorgangHeaderLinkRel.ASSIGNED_TO)
.pipe(first(isNotNull)) .pipe(
first((userProfile: StateResource<UserProfileResource>) =>
isNotNull(userProfile.resource),
),
)
.subscribe((userProfileStateResource: StateResource<UserProfileResource>) => { .subscribe((userProfileStateResource: StateResource<UserProfileResource>) => {
this.userProfile = userProfileStateResource; this.buildAriaLabel(userProfileStateResource.resource);
}); });
} } else this.buildAriaLabel();
this.buildAriaLabel();
} }
buildAriaLabel() { buildAriaLabel(userProfileResource: UserProfileResource = undefined) {
const name: string = this.vorgang.name; const name: string = this.vorgang.name;
const aktenzeichen: string = getAktenzeichenText(this.vorgang); const aktenzeichen: string = getAktenzeichenText(this.vorgang);
const nummer: string = this.vorgang.nummer; const nummer: string = this.vorgang.nummer;
const approvalStatus: string = this.getApprovalText(); const approvalStatus: string = this.getApprovalText();
const createdAt: string = formatFullDateWithTimeWithoutSeconds(this.vorgang.createdAt); const createdAt: string = formatFullDateWithTimeWithoutSeconds(this.vorgang.createdAt);
this.ariaLabel = `Vorgang: ${name}, Aktenzeichen: ${aktenzeichen}, Nummer: ${nummer} Status: ${this.getStatus()} ${approvalStatus}, Eingang: ${createdAt}, Aktuell zugewiesener Nutzer: ${getUserName(this.userProfile.resource)}`; this.ariaLabel = `Vorgang: ${name}, Aktenzeichen: ${aktenzeichen}, Nummer: ${nummer} Status: ${this.getStatus()} ${approvalStatus}, Eingang: ${createdAt}, Aktuell zugewiesener Nutzer: ${getUserName(userProfileResource)}`;
if ( if (
hasLink(this.vorgang, VorgangHeaderLinkRel.WIEDERVORLAGEN) && hasLink(this.vorgang, VorgangHeaderLinkRel.WIEDERVORLAGEN) &&
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment