UNPKG

e2ed

Version:

E2E testing framework over Playwright

61 lines (60 loc) 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.chooseTestRun = chooseTestRun; const assertValueIsDefined_1 = require("./assertValueIsDefined"); const render_1 = require("./render"); const assertValueIsDefined = assertValueIsDefined_1.assertValueIsDefined; const renderApiStatistics = render_1.renderApiStatistics; const renderTestRunDetails = render_1.renderTestRunDetails; /** * Chooses `TestRun` (render chosen `TestRun` in right panel). * This base client function should not use scope variables (except other base functions). * @internal */ // eslint-disable-next-line max-statements function chooseTestRun(runHash) { const previousHash = window.location.hash; window.location.hash = runHash; if (reportClientState.testRunDetailsElementsByHash === undefined) { reportClientState.testRunDetailsElementsByHash = Object.create(null); } const { testRunDetailsElementsByHash } = reportClientState; const previousTestRunDetailsElement = e2edRightColumnContainer.firstElementChild; if (!(previousHash in testRunDetailsElementsByHash)) { testRunDetailsElementsByHash[previousHash] = previousTestRunDetailsElement; } if (runHash in testRunDetailsElementsByHash) { const e2edTestRunDetailsElement = testRunDetailsElementsByHash[runHash]; assertValueIsDefined(e2edTestRunDetailsElement); previousTestRunDetailsElement.replaceWith(e2edTestRunDetailsElement); return; } const pagesHash = 'api-statistics-pages'; const requestsHash = 'api-statistics-requests'; const resourcesHash = 'api-statistics-resources'; let rightColumnHtml; const hash = String(runHash); if (hash === pagesHash || hash === requestsHash || hash === resourcesHash) { const { reportClientData } = reportClientState; if (reportClientData === undefined) { // eslint-disable-next-line no-console console.error(`Cannot find report client data in JSON report data (tried to click "${runHash}"). Probably JSON report data not yet completely loaded. Please try click again later`); return; } const { apiStatistics } = reportClientData; rightColumnHtml = renderApiStatistics({ apiStatistics, hash }); } else { const { fullTestRuns } = reportClientState; const fullTestRun = fullTestRuns.find((testRun) => testRun.runHash === runHash); if (fullTestRun === undefined) { // eslint-disable-next-line no-console console.error(`Cannot find test run with hash ${runHash} in JSON report data. Probably JSON report data for this test run not yet loaded. Please try click again later`); return; } rightColumnHtml = renderTestRunDetails(fullTestRun); } e2edRightColumnContainer.innerHTML = String(rightColumnHtml); const nextTestRunDetailsElement = e2edRightColumnContainer.firstElementChild; testRunDetailsElementsByHash[runHash] = nextTestRunDetailsElement; }