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

OZG-6376 Add tests

parent e3422852
Branches
Tags
No related merge requests found
...@@ -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 {
convertForDataTest,
ConvertForDataTestPipe, ConvertForDataTestPipe,
createStateResource, createStateResource,
EnumToLabelPipe, EnumToLabelPipe,
...@@ -185,142 +184,166 @@ describe('VorgangListItemComponent', () => { ...@@ -185,142 +184,166 @@ describe('VorgangListItemComponent', () => {
}); });
}); });
describe('Aria label', () => { describe('mail icon', () => {
it('should contain Wiedervorlage', () => { beforeEach(() => {
component.vorgang = createVorgangResource([ component.vorgang = createVorgangResource([
VorgangHeaderLinkRel.VORGANG_WITH_EINGANG, VorgangHeaderLinkRel.VORGANG_WITH_EINGANG,
VorgangHeaderLinkRel.WIEDERVORLAGEN, VorgangHeaderLinkRel.POSTFACH_MAILS,
]); ]);
const listItem: string = getDataTestIdOf( });
`vorgang-list-item-${convertForDataTest(component.vorgang.name)}`,
); it('should show mail icon if Vorgang has new Postfachnachricht', () => {
component.ngOnInit(); component.vorgang.hasPostfachNachricht = true;
fixture.detectChanges(); fixture.detectChanges();
const element: HTMLDivElement = fixture.nativeElement.querySelector(listItem); const statusElement = getElementFromFixture(fixture, postfachStatus);
const ariaLabel: string = element.getAttribute('aria-label');
expect(ariaLabel).toContain('Wiedervorlage'); expect(statusElement).toBeInstanceOf(HTMLElement);
}); });
it('should not contain Wiedervorlage if no nextFrist but LinkRel.WIEDERVORLAGEN', () => { it('should not show mail icon if Vorgang has no new Postfachnachricht', () => {
component.vorgang = { component.vorgang.hasPostfachNachricht = false;
...createVorgangResource([
VorgangHeaderLinkRel.VORGANG_WITH_EINGANG,
VorgangHeaderLinkRel.WIEDERVORLAGEN,
]),
nextFrist: null,
};
const listItem: string = getDataTestIdOf(
`vorgang-list-item-${convertForDataTest(component.vorgang.name)}`,
);
component.ngOnInit();
fixture.detectChanges(); fixture.detectChanges();
const element: HTMLDivElement = fixture.nativeElement.querySelector(listItem); const statusElement = getElementFromFixture(fixture, postfachStatus);
const ariaLabel: string = element.getAttribute('aria-label');
expect(ariaLabel).not.toContain('Wiedervorlage'); expect(statusElement).not.toBeInstanceOf(HTMLElement);
});
}); });
it('should not contain Wiedervorlage if no LinkRel.WIEDERVORLAGEN', () => { describe('Bescheid-Status', () => {
component.vorgang = createVorgangResource([VorgangHeaderLinkRel.VORGANG_WITH_EINGANG]); it('should show bescheid status if Vorgang has antragBewilligt true', () => {
const listItem: string = getDataTestIdOf( component.vorgang.antragBewilligt = true;
`vorgang-list-item-${convertForDataTest(component.vorgang.name)}`,
);
component.ngOnInit();
fixture.detectChanges(); fixture.detectChanges();
const element: HTMLDivElement = fixture.nativeElement.querySelector(listItem); const element = getElementFromFixture(fixture, bescheidStatus);
const ariaLabel: string = element.getAttribute('aria-label');
expect(ariaLabel).not.toContain('Wiedervorlage'); expect(element).toBeInstanceOf(HTMLElement);
}); });
it('should contain hasPostfachnachricht text if vorgang has Postfachnachricht', () => { it('should show bescheid status if Vorgang has antragBewilligt false', () => {
component.vorgang.hasPostfachNachricht = true; component.vorgang.antragBewilligt = false;
component.vorgang.hasNewPostfachNachricht = false;
const listItem: string = getDataTestIdOf(
`vorgang-list-item-${convertForDataTest(component.vorgang.name)}`,
);
component.ngOnInit();
fixture.detectChanges(); fixture.detectChanges();
const element: HTMLDivElement = fixture.nativeElement.querySelector(listItem); const element = getElementFromFixture(fixture, bescheidStatus);
const ariaLabel: string = element.getAttribute('aria-label');
expect(ariaLabel).toContain('enthält Postfachnachrichten'); expect(element).toBeInstanceOf(HTMLElement);
}); });
it('should contain hasNewPostfachnachricht text if vorgang has new Postfachnachricht', () => { it('should not show bescheid status if Vorgang has no antragBewilligt', () => {
component.vorgang.hasPostfachNachricht = true; component.vorgang.antragBewilligt = null;
component.vorgang.hasNewPostfachNachricht = true;
const listItem: string = getDataTestIdOf(
`vorgang-list-item-${convertForDataTest(component.vorgang.name)}`,
);
component.ngOnInit();
fixture.detectChanges(); fixture.detectChanges();
const element: HTMLDivElement = fixture.nativeElement.querySelector(listItem); const element = getElementFromFixture(fixture, bescheidStatus);
const ariaLabel: string = element.getAttribute('aria-label');
expect(ariaLabel).toContain('enthält neue Postfachnachrichten'); expect(element).not.toBeInstanceOf(HTMLElement);
}); });
}); });
describe('mail icon', () => { describe('buildAriaLabel', () => {
beforeEach(() => { beforeEach(() => {
component.getWiedervorlageText = jest.fn();
component.getPostfachNachricht = jest.fn();
});
it('should get status', () => {
component.getStatus = jest.fn();
component.buildAriaLabel();
expect(component.getStatus).toHaveBeenCalled();
});
it('should get approval text', () => {
component.getApprovalText = jest.fn();
component.buildAriaLabel();
expect(component.getApprovalText).toHaveBeenCalled();
});
it('should get user text', () => {
component.getUserText = jest.fn();
component.buildAriaLabel(userProfile);
expect(component.getUserText).toHaveBeenCalledWith(userProfile);
});
it('should get Wiedervorlage', () => {
component.vorgang = createVorgangResource([ component.vorgang = createVorgangResource([
VorgangHeaderLinkRel.VORGANG_WITH_EINGANG, VorgangHeaderLinkRel.VORGANG_WITH_EINGANG,
VorgangHeaderLinkRel.POSTFACH_MAILS, VorgangHeaderLinkRel.WIEDERVORLAGEN,
]); ]);
component.buildAriaLabel();
expect(component.getWiedervorlageText).toHaveBeenCalled();
}); });
it('should show mail icon if Vorgang has new Postfachnachricht', () => { it('should not get Wiedervorlage if no nextFrist but LinkRel.WIEDERVORLAGEN', () => {
component.vorgang = {
...createVorgangResource([
VorgangHeaderLinkRel.VORGANG_WITH_EINGANG,
VorgangHeaderLinkRel.WIEDERVORLAGEN,
]),
nextFrist: null,
};
component.buildAriaLabel();
expect(component.getWiedervorlageText).not.toHaveBeenCalled();
});
it('should not get Wiedervorlage if no LinkRel.WIEDERVORLAGEN', () => {
component.vorgang = createVorgangResource([VorgangHeaderLinkRel.VORGANG_WITH_EINGANG]);
component.buildAriaLabel();
expect(component.getWiedervorlageText).not.toHaveBeenCalled();
});
it('should get message text if vorgang has message', () => {
component.vorgang.hasPostfachNachricht = true; component.vorgang.hasPostfachNachricht = true;
fixture.detectChanges();
const statusElement = getElementFromFixture(fixture, postfachStatus); component.buildAriaLabel();
expect(statusElement).toBeInstanceOf(HTMLElement); expect(component.getPostfachNachricht).toHaveBeenCalled();
}); });
it('should not show mail icon if Vorgang has no new Postfachnachricht', () => { it('should not get message text if vorgang has no messages', () => {
component.vorgang.hasPostfachNachricht = false; component.vorgang.hasPostfachNachricht = false;
fixture.detectChanges();
const statusElement = getElementFromFixture(fixture, postfachStatus); component.buildAriaLabel();
expect(statusElement).not.toBeInstanceOf(HTMLElement); expect(component.getPostfachNachricht).not.toHaveBeenCalled();
}); });
}); });
describe('Bescheid-Status', () => { describe('getWiedervorlageText', () => {
it('should show bescheid status if Vorgang has antragBewilligt true', () => { it('should return text for next resubmission', () => {
component.vorgang.antragBewilligt = true; component.vorgang.nextFrist = new Date('07.02.1977');
fixture.detectChanges();
const element = getElementFromFixture(fixture, bescheidStatus); const result: string = component.getWiedervorlageText();
expect(element).toBeInstanceOf(HTMLElement); expect(result).toBe(', Nächste Wiedervorlage am 02.07.1977');
});
}); });
it('should show bescheid status if Vorgang has antragBewilligt false', () => { describe('getPostfachNachricht', () => {
component.vorgang.antragBewilligt = false; it('should return "contains new messages"', () => {
fixture.detectChanges(); component.vorgang.hasNewPostfachNachricht = true;
const element = getElementFromFixture(fixture, bescheidStatus); const result: string = component.getPostfachNachricht();
expect(element).toBeInstanceOf(HTMLElement); expect(result).toBe(', enthält neue Postfachnachrichten');
}); });
it('should not show bescheid status if Vorgang has no antragBewilligt', () => { it('should return "contains messages"', () => {
component.vorgang.antragBewilligt = null; component.vorgang.hasNewPostfachNachricht = false;
fixture.detectChanges();
const element = getElementFromFixture(fixture, bescheidStatus); const result: string = component.getPostfachNachricht();
expect(element).not.toBeInstanceOf(HTMLElement); expect(result).toBe(', enthält Postfachnachrichten');
}); });
}); });
...@@ -359,4 +382,20 @@ describe('VorgangListItemComponent', () => { ...@@ -359,4 +382,20 @@ describe('VorgangListItemComponent', () => {
expect(result).toBe('abgelehnt'); expect(result).toBe('abgelehnt');
}); });
}); });
describe('getUserText', () => {
it('should return no assigned user text', () => {
const result: string = component.getUserText(undefined);
expect(result).toBe('Kein Bearbeiter zugewiesen');
});
it('should return assigned user text', () => {
const result: string = component.getUserText(userProfile);
expect(result).toBe(
`Aktuell zugewiesener Nutzer: ${userProfile.firstName} ${userProfile.lastName}`,
);
});
});
}); });
...@@ -79,10 +79,7 @@ export class VorgangListItemComponent implements OnInit { ...@@ -79,10 +79,7 @@ export class VorgangListItemComponent implements OnInit {
const status: string = this.getStatus(); const status: string = this.getStatus();
const approvalStatus: string = this.getApprovalText(); const approvalStatus: string = this.getApprovalText();
const createdAt: string = formatFullDateWithTimeWithoutSeconds(this.vorgang.createdAt); const createdAt: string = formatFullDateWithTimeWithoutSeconds(this.vorgang.createdAt);
const userText: string = const userText: string = this.getUserText(userProfileResource);
userProfileResource ?
`Aktuell zugewiesener Nutzer: ${getUserName(userProfileResource)}`
: 'Kein Bearbeiter zugewiesen';
this.ariaLabel = `Vorgang: ${name}, Aktenzeichen: ${aktenzeichen}, Nummer: ${nummer} Status: ${status} ${approvalStatus}, Eingang: ${createdAt}, ${userText}`; this.ariaLabel = `Vorgang: ${name}, Aktenzeichen: ${aktenzeichen}, Nummer: ${nummer} Status: ${status} ${approvalStatus}, Eingang: ${createdAt}, ${userText}`;
...@@ -121,4 +118,10 @@ export class VorgangListItemComponent implements OnInit { ...@@ -121,4 +118,10 @@ export class VorgangListItemComponent implements OnInit {
return this.vorgang.antragBewilligt ? 'bewilligt' : 'abgelehnt'; return this.vorgang.antragBewilligt ? 'bewilligt' : 'abgelehnt';
} }
getUserText(userProfileResource: UserProfileResource): string {
return userProfileResource ?
`Aktuell zugewiesener Nutzer: ${getUserName(userProfileResource)}`
: 'Kein Bearbeiter zugewiesen';
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment