UNPKG

e2ed

Version:

E2E testing framework over Playwright

41 lines (40 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderHead = void 0; const client_1 = require("../client"); const getContentFromRenderedElement_1 = require("../getContentFromRenderedElement"); const getCspHash_1 = require("../getCspHash"); const renderFavicon_1 = require("./renderFavicon"); const renderScript_1 = require("./renderScript"); const renderStyle_1 = require("./renderStyle"); /** * Renders tag `<head>`. * @internal */ const renderHead = (reportFileName, imgCspHosts) => { const renderedScript = (0, renderScript_1.renderScript)(); const renderedStyle = (0, renderStyle_1.renderStyle)(); const scriptContent = (0, getContentFromRenderedElement_1.getContentFromRenderedElement)(renderedScript); const styleContent = (0, getContentFromRenderedElement_1.getContentFromRenderedElement)(renderedStyle); const cspScriptHash = (0, getCspHash_1.getCspHash)(scriptContent); const cspStyleHash = (0, getCspHash_1.getCspHash)(styleContent); const cspContent = [ "default-src 'self';", `img-src 'self' data: ${imgCspHosts};`, `script-src '${cspScriptHash}';`, `style-src '${cspStyleHash}';`, ]; const safeCspContent = (0, client_1.createSafeHtmlWithoutSanitize) `${cspContent.join(' ')}`; return (0, client_1.sanitizeHtml) ` <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="description" content="${reportFileName}" /> <meta http-equiv="Content-Security-Policy" content="${safeCspContent}" /> <title>${reportFileName}</title> ${(0, renderFavicon_1.renderFavicon)()} ${renderedStyle} ${renderedScript} </head>`; }; exports.renderHead = renderHead;