diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation.ts index 826cb6a09e8321d97578db6ddc61f3706874ba1c..40dc7120e89587eca1214c5b2eb673df1450a220 100644 --- a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation.ts +++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation.ts @@ -45,6 +45,10 @@ export class VorgangSubnavigationE2EComponent { return cy.getTestElement(this.backIconButton); } + public back(): void { + this.getBackButton().click(); + } + public getAnnehmenIconButton() { return cy.getTestElement(this.annehmenIconButton); } diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts index 446c287de76ee0c62fd746f6df9241c95ed0ce92..719825fd08a222a32c30f8bafd7c70e260d403b7 100644 --- a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts +++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component.ts @@ -18,6 +18,9 @@ export class VorgangViewsE2EComponent { private readonly zuLoeschenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent( 'Zu_Loschen', ); + private readonly ungelesenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent( + 'Ungelesen', + ); private readonly wiedervorlagenViewItem: VorgangViewE2EComponent = new VorgangViewE2EComponent( 'Wiedervorlagen', ); @@ -54,6 +57,10 @@ export class VorgangViewsE2EComponent { return this.zuLoeschenViewItem; } + public getUngelesen(): VorgangViewE2EComponent { + return this.ungelesenViewItem; + } + public getWiedervorlagen(): VorgangViewE2EComponent { return this.wiedervorlagenViewItem; } diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts new file mode 100644 index 0000000000000000000000000000000000000000..323803e5693ea60d476d70aff45717143b624cc4 --- /dev/null +++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts @@ -0,0 +1,127 @@ +import { + PostfachMailE2EComponent, + PostfachMailListItem, +} from 'apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component'; +import { VorgangSubnavigationE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation'; +import { + VorgangViewE2EComponent, + VorgangViewsE2EComponent, +} from 'apps/alfa-e2e/src/components/vorgang/vorgang-views.e2e.component'; +import { + PostfachMailItemE2E, + VorgangAttachedItemClientE2E, + VorgangAttachedItemE2E, +} from 'apps/alfa-e2e/src/model/vorgang-attached-item'; +import { VorgangPage } from 'apps/alfa-e2e/src/page-objects/vorgang.po'; +import { exist, haveLength } from 'apps/alfa-e2e/src/support/cypress.util'; +import { + createPostfachNachrichtAttachedItem, + createPostfachNachrichtReplyItem, + initVorgangAttachedItem, +} from 'apps/alfa-e2e/src/support/vorgang-attached-item-util'; +import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; +import { ClientAttributeNameE2E, ClientAttributesE2E, VorgangE2E } from '../../../model/vorgang'; +import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; +import { dropCollections } from '../../../support/cypress-helper'; +import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; +import { + buildVorgang, + createHasNewPostfachNachrichtClientAttribute, + createHasPostfachNachrichtClientAttribute, + initVorgaenge, + objectIds, +} from '../../../support/vorgang-util'; + +describe('Ungelesene Nachrichten', () => { + const mainPage: MainPage = new MainPage(); + const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList(); + const vorgangPage: VorgangPage = new VorgangPage(); + const subnavigation: VorgangSubnavigationE2EComponent = vorgangPage.getSubnavigation(); + const views: VorgangViewsE2EComponent = mainPage.getViews(); + const ungelesenView: VorgangViewE2EComponent = views.getUngelesen(); + const postfachMailContainer: PostfachMailE2EComponent = vorgangPage.getPostfachMailcontainer(); + + const clientAttributes: ClientAttributesE2E = { + [VorgangAttachedItemClientE2E.OZGCLOUD_NACHRICHTEN_MANAGER]: { + [ClientAttributeNameE2E.HAS_NEW_POSTFACH_NACHRICHT]: + createHasNewPostfachNachrichtClientAttribute(true), + [ClientAttributeNameE2E.HAS_POSTFACH_NACHRICHT]: + createHasPostfachNachrichtClientAttribute(true), + }, + }; + + const vorgangWithReply1: VorgangE2E = { + ...buildVorgang(objectIds[0], 'VorgangWithReply'), + clientAttributes, + }; + + const vorgangWithReply2: VorgangE2E = { + ...buildVorgang(objectIds[1], 'VorgangWithReply 2'), + clientAttributes, + }; + + const postfachMailReply1: PostfachMailItemE2E = createPostfachNachrichtReplyItem(); + const postfachMailReply2: PostfachMailItemE2E = createPostfachNachrichtReplyItem(); + + const postfachNachrichtAttachedItem1: VorgangAttachedItemE2E = { + ...createPostfachNachrichtAttachedItem(objectIds[0], vorgangWithReply1._id.$oid), + item: postfachMailReply1, + }; + const postfachNachrichtAttachedItem2: VorgangAttachedItemE2E = { + ...createPostfachNachrichtAttachedItem(objectIds[1], vorgangWithReply2._id.$oid), + item: postfachMailReply2, + }; + + before(() => { + initVorgaenge([vorgangWithReply1, vorgangWithReply2]); + initVorgangAttachedItem([postfachNachrichtAttachedItem1]); + initVorgangAttachedItem([postfachNachrichtAttachedItem2]); + initUsermanagerUsers(); + + loginAsSabine(); + + waitForSpinnerToDisappear(); + exist(vorgangList.getRoot()); + }); + + after(() => { + dropCollections(); + }); + + describe('Show number of unread messages', () => { + it('should show 2 unread messages in filter', () => { + ungelesenView.getRoot().click(); + waitForSpinnerToDisappear(); + + haveLength(vorgangList.getItems(), 2); + }); + + it('should show 1 unread message after viewing first message', () => { + vorgangList.getListItem(vorgangWithReply1.name).getRoot().click(); + waitForSpinnerToDisappear(); + + const postfachMailItem: PostfachMailListItem = postfachMailContainer.getListItem('Subject'); + postfachMailItem.getRoot().click(); + waitForSpinnerToDisappear(); + + subnavigation.back(); + subnavigation.back(); + + haveLength(vorgangList.getItems(), 1); + }); + + it('should show 0 unread messages after viewing second message', () => { + vorgangList.getListItem(vorgangWithReply2.name).getRoot().click(); + waitForSpinnerToDisappear(); + + const postfachMailItem: PostfachMailListItem = postfachMailContainer.getListItem('Subject'); + postfachMailItem.getRoot().click(); + waitForSpinnerToDisappear(); + + subnavigation.back(); + subnavigation.back(); + + haveLength(vorgangList.getItems(), 0); + }); + }); +});