diff --git a/acceptanceTests/cypress/integration/testHelpers/TrafficHelper.js b/acceptanceTests/cypress/integration/testHelpers/TrafficHelper.js index 94ff12a3a..e63821d9c 100644 --- a/acceptanceTests/cypress/integration/testHelpers/TrafficHelper.js +++ b/acceptanceTests/cypress/integration/testHelpers/TrafficHelper.js @@ -39,13 +39,13 @@ export function verifyMinimumEntries() { }); } -export function leftTextCheck(entryNum, path, expectedText) { - cy.get(`#list #entry-${entryNum} ${path}`).invoke('text').should('eq', expectedText); +export function leftTextCheck(entryId, path, expectedText) { + cy.get(`#list #entry-${entryId} ${path}`).invoke('text').should('eq', expectedText); } -export function leftOnHoverCheck(entryNum, path, filterName) { - cy.get(`#list #entry-${entryNum} ${path}`).trigger('mouseover'); - cy.get(`#list #entry-${entryNum} [data-cy='QueryableTooltip']`).invoke('text').should('match', new RegExp(filterName)); +export function leftOnHoverCheck(entryId, path, filterName) { + cy.get(`#list #entry-${entryId} ${path}`).trigger('mouseover'); + cy.get(`#list #entry-${entryId} [data-cy='QueryableTooltip']`).invoke('text').should('match', new RegExp(filterName)); } export function rightTextCheck(path, expectedText) { @@ -89,13 +89,13 @@ export function checkFilterByMethod(funcDict) { cy.get('#entries-length').invoke('text').then(len => { resizeIfNeeded(len); listElmWithIdAttr.forEach(entry => { - if (entry?.id && entry.id.match(RegExp(/entry-(\d{2}|\d{1})$/gm))) { - const entryNum = getEntryNumById(entry.id); + if (entry?.id && entry.id.match(RegExp(/entry-(\d{24})$/gm))) { + const entryId = getEntryId(entry.id); - leftTextCheck(entryNum, methodDict.pathLeft, methodDict.expectedText); - leftTextCheck(entryNum, protocolDict.pathLeft, protocolDict.expectedTextLeft); + leftTextCheck(entryId, methodDict.pathLeft, methodDict.expectedText); + leftTextCheck(entryId, protocolDict.pathLeft, protocolDict.expectedTextLeft); if (summaryDict) - leftTextCheck(entryNum, summaryDict.pathLeft, summaryDict.expectedText); + leftTextCheck(entryId, summaryDict.pathLeft, summaryDict.expectedText); if (!doneCheckOnFirst) { deepCheck(funcDict, protocolDict, methodDict, entry); @@ -111,6 +111,11 @@ export function checkFilterByMethod(funcDict) { }); } +export function getEntryId(id) { + // take the second part from the string (entry-) + return id.split('-')[1]; +} + function resizeIfNeeded(entriesLen) { if (entriesLen > maxEntriesInDom){ Cypress.config().viewportHeight === Cypress.env('normalMizuHeight') ? @@ -119,14 +124,14 @@ function resizeIfNeeded(entriesLen) { } function deepCheck(generalDict, protocolDict, methodDict, entry) { - const entryNum = getEntryNumById(entry.id); + const entryId = getEntryId(entry.id); const {summary, value} = generalDict; const summaryDict = getSummaryDict(summary); - leftOnHoverCheck(entryNum, methodDict.pathLeft, methodDict.expectedOnHover); - leftOnHoverCheck(entryNum, protocolDict.pathLeft, protocolDict.expectedOnHover); + leftOnHoverCheck(entryId, methodDict.pathLeft, methodDict.expectedOnHover); + leftOnHoverCheck(entryId, protocolDict.pathLeft, protocolDict.expectedOnHover); if (summaryDict) - leftOnHoverCheck(entryNum, summaryDict.pathLeft, summaryDict.expectedOnHover); + leftOnHoverCheck(entryId, summaryDict.pathLeft, summaryDict.expectedOnHover); cy.get(`#${entry.id}`).click(); @@ -183,7 +188,3 @@ function getProtocolDict(protocol, protocolText) { expectedOnHover: protocol.toLowerCase() }; } - -function getEntryNumById (id) { - return parseInt(id.split('-')[1]); -} diff --git a/acceptanceTests/cypress/integration/tests/IgnoredUserAgents.js b/acceptanceTests/cypress/integration/tests/IgnoredUserAgents.js index af49fc55c..f6c11a85d 100644 --- a/acceptanceTests/cypress/integration/tests/IgnoredUserAgents.js +++ b/acceptanceTests/cypress/integration/tests/IgnoredUserAgents.js @@ -15,15 +15,11 @@ function checkEntries() { checkThatAllEntriesShown(); resizeToHugeMizu(); - cy.get('#total-entries').then(number => { - const numOfEntries = parseInt(number.text()); - [...Array(numOfEntries).keys()].map(checkEntry); + cy.get('#list [id^=entry]').each(entryElement => { + entryElement.click(); + cy.get('#tbody-Headers').should('be.visible'); + isValueExistsInElement(false, 'Ignored-User-Agent', '#tbody-Headers'); }); }); } -function checkEntry(entryIndex) { - cy.get(`#entry-${entryIndex}`).click(); - cy.get('#tbody-Headers').should('be.visible'); - isValueExistsInElement(false, 'Ignored-User-Agent', '#tbody-Headers'); -} diff --git a/acceptanceTests/cypress/integration/tests/UiTest.js b/acceptanceTests/cypress/integration/tests/UiTest.js index 9b5b4867a..88f21c3ad 100644 --- a/acceptanceTests/cypress/integration/tests/UiTest.js +++ b/acceptanceTests/cypress/integration/tests/UiTest.js @@ -1,5 +1,6 @@ import {findLineAndCheck, getExpectedDetailsDict} from "../testHelpers/StatusBarHelper"; import { + getEntryId, leftOnHoverCheck, leftTextCheck, resizeToHugeMizu, @@ -148,9 +149,6 @@ function checkFilterNoResults(filterName) { // the DOM should show 0 entries cy.get('#entries-length').should('have.text', '0'); - // going through every potential entry and verifies that it doesn't exist - [...Array(parseInt(totalEntries)).keys()].map(shouldNotExist); - cy.get('[title="Fetch old records"]').click(); cy.get('#noMoreDataTop', {timeout: refreshWaitTimeout}).should('be.visible'); cy.get('#entries-length').should('have.text', '0'); // after loading all entries there should still be 0 entries @@ -162,10 +160,6 @@ function checkFilterNoResults(filterName) { }); } -function shouldNotExist(entryNum) { - cy.get(`entry-${entryNum}`).should('not.exist'); -} - function checkIllegalFilter(illegalFilterName) { it(`should show red search bar with the input: ${illegalFilterName}`, function () { cy.reload(); @@ -185,30 +179,44 @@ function checkIllegalFilter(illegalFilterName) { }); }); } -function checkFilter(filterDetails){ - const {name, leftSidePath, rightSidePath, rightSideExpectedText, leftSideExpectedText, applyByEnter} = filterDetails; + +function checkFilter(filterDetails) { + const { + name, + leftSidePath, + rightSidePath, + rightSideExpectedText, + leftSideExpectedText, + applyByEnter + } = filterDetails; + const entriesForDeeperCheck = 5; it(`checking the filter: ${name}`, function () { cy.get('#total-entries').should('not.have.text', '0').then(number => { const totalEntries = number.text(); - // checks the hover on the last entry (the only one in DOM at the beginning) - leftOnHoverCheck(totalEntries - 1, leftSidePath, name); + cy.get(`#list [id^=entry]`).last().then(elem => { + const element = elem[0]; + const entryId = getEntryId(element.id); + // checks the hover on the last entry (the only one in DOM at the beginning) + leftOnHoverCheck(entryId, leftSidePath, name); - cy.get('.w-tc-editor-text').clear(); - // applying the filter with alt+enter or with the button - cy.get('.w-tc-editor-text').type(`${name}${applyByEnter ? '{alt+enter}' : ''}`); - cy.get('.w-tc-editor').should('have.attr', 'style').and('include', Cypress.env('greenFilterColor')); - if (!applyByEnter) - cy.get('[type="submit"]').click(); + cy.get('.w-tc-editor-text').clear(); + // applying the filter with alt+enter or with the button + cy.get('.w-tc-editor-text').type(`${name}${applyByEnter ? '{alt+enter}' : ''}`); + cy.get('.w-tc-editor').should('have.attr', 'style').and('include', Cypress.env('greenFilterColor')); + if (!applyByEnter) + cy.get('[type="submit"]').click(); - // only one entry in DOM after filtering, checking all checks on it - leftTextCheck(totalEntries - 1, leftSidePath, leftSideExpectedText); - leftOnHoverCheck(totalEntries - 1, leftSidePath, name); - rightTextCheck(rightSidePath, rightSideExpectedText); - rightOnHoverCheck(rightSidePath, name); - checkRightSideResponseBody(); + // only one entry in DOM after filtering, checking all checks on it + leftTextCheck(entryId, leftSidePath, leftSideExpectedText); + leftOnHoverCheck(entryId, leftSidePath, name); + + rightTextCheck(rightSidePath, rightSideExpectedText); + rightOnHoverCheck(rightSidePath, name); + checkRightSideResponseBody(); + }); cy.get('[title="Fetch old records"]').click(); resizeToHugeMizu(); @@ -217,28 +225,33 @@ function checkFilter(filterDetails){ cy.get('#entries-length', {timeout: refreshWaitTimeout}).should('have.text', totalEntries); // checking only 'leftTextCheck' on all entries because the rest of the checks require more time - [...Array(parseInt(totalEntries)).keys()].forEach(entryNum => { - leftTextCheck(entryNum, leftSidePath, leftSideExpectedText); + cy.get(`#list [id^=entry]`).each(elem => { + const element = elem[0]; + let entryId = getEntryId(element.id); + leftTextCheck(entryId, leftSidePath, leftSideExpectedText); }); // making the other 3 checks on the first X entries (longer time for each check) - deeperChcek(leftSidePath, rightSidePath, name, leftSideExpectedText, rightSideExpectedText, entriesForDeeperCheck); + deeperCheck(leftSidePath, rightSidePath, name, leftSideExpectedText, rightSideExpectedText, entriesForDeeperCheck); // reloading then waiting for the entries number to load resizeToNormalMizu(); cy.reload(); cy.get('#total-entries', {timeout: refreshWaitTimeout}).should('have.text', totalEntries); - }); + }) }); } -function deeperChcek(leftSidePath, rightSidePath, filterName, leftSideExpectedText, rightSideExpectedText, entriesNumToCheck) { - [...Array(entriesNumToCheck).keys()].forEach(entryNum => { - leftOnHoverCheck(entryNum, leftSidePath, filterName); +function deeperCheck(leftSidePath, rightSidePath, filterName, leftSideExpectedText, rightSideExpectedText, entriesNumToCheck) { + cy.get(`#list [id^=entry]`).each((element, index) => { + if (index < entriesNumToCheck) { + const entryId = getEntryId(element[0].id); + leftOnHoverCheck(entryId, leftSidePath, filterName); - cy.get(`#list #entry-${entryNum}`).click(); - rightTextCheck(rightSidePath, rightSideExpectedText); - rightOnHoverCheck(rightSidePath, filterName); + element.click(); + rightTextCheck(rightSidePath, rightSideExpectedText); + rightOnHoverCheck(rightSidePath, filterName); + } }); }