diff --git a/cypress/support/step_definitions/email.js b/cypress/support/step_definitions/email.js index dd9294ce8..0beaab73b 100644 --- a/cypress/support/step_definitions/email.js +++ b/cypress/support/step_definitions/email.js @@ -1,31 +1,34 @@ import { defineStep } from '@badeball/cypress-cucumber-preprocessor' +const emailClientList = '.email-list' + defineStep('{string} should receive no chat notification email', (recipientEmailAddress) => { const emailTitle = 'Neue Chat-Nachricht | New chat message' cy.origin( Cypress.env('mailserverURL'), - { args: { recipientEmailAddress, emailTitle } }, - ({ recipientEmailAddress, emailTitle }) => { - const emailClientList = '.email-list' + { args: { emailClientList, emailTitle, recipientEmailAddress } }, + ({ emailClientList, emailTitle, recipientEmailAddress }) => { cy.visit('/') cy.get(emailClientList).should('be.visible') - // check the email list for unread emails with the specific title and recipient address - cy.get(emailClientList).find('li').then(($emails) => { - if ($emails.length === 0) { - expect($emails.length).to.equal(0) - return + //---- + cy.get(emailClientList).then(($list) => { + // Check if the list has child elements + // const hasEmails = $list.children('li').length > 0 + + if ($list.children('li').length > 0) { + cy.get(emailClientList).find('li').then(($emails) => { + const unreadEmails = $emails.filter((_, email) => { + const subjectText = Cypress.$(email).find('.title').text().trim() + const senderEmail = Cypress.$(email).find('.subline-from').text().trim() + const isUnread = Cypress.$(email).find('.unread-icon').not('.ng-hide').length > 0 + return subjectText.includes(emailTitle) && senderEmail === recipientEmailAddress && isUnread + }) + + expect(unreadEmails.length).to.equal(0) + }) } - - const unreadEmails = $emails.filter((_, email) => { - const subjectText = Cypress.$(email).find('.title').text().trim() - const senderEmail = Cypress.$(email).find('.subline-from').text().trim() - const isUnread = Cypress.$(email).find('.unread-icon').not('.ng-hide').length > 0 - return subjectText.includes(emailTitle) && senderEmail === recipientEmailAddress && isUnread - }) - - expect(unreadEmails.length).to.equal(0) }) }, )