e2ed
Version:
E2E testing framework over Playwright
61 lines (60 loc) • 3.03 kB
JavaScript
;
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;
}