diff --git a/scripts/create-testenv.mjs b/scripts/create-testenv.mjs index 6032a53b..3ff734b1 100644 --- a/scripts/create-testenv.mjs +++ b/scripts/create-testenv.mjs @@ -64,7 +64,7 @@ function runCommand(command, args, options = {}) { if (result.status !== 0) { throw new Error( - `Command failed: ${command} ${args.join(' ')} (status ${result.status ?? 1}${result.signal ? `, signal ${result.signal}` : ''})`, + `Command failed: ${command} ${args.join(' ')} (status ${result.status ?? 1}${result.signal ? `, signal ${result.signal}` : ''})` ); } } @@ -191,10 +191,7 @@ function upsertHeadStyle(html, markerAttribute, styleTag) { function applySeoDirectivesToHtml( html, - { - canonicalUrl = ROOT_CANONICAL_URL, - robotsDirectives = TESTENV_ROBOTS_DIRECTIVES, - } = {}, + { canonicalUrl = ROOT_CANONICAL_URL, robotsDirectives = TESTENV_ROBOTS_DIRECTIVES } = {} ) { let nextHtml = html; @@ -495,13 +492,22 @@ const TESTENV_HIDE_HEADER_STYLE = ` } `; +function hideTopHeaderInBuiltHtml(html) { + if (html.includes('data-testenv-hide-header')) { + return html; + } + + return html.replace('', `${TESTENV_HIDE_HEADER_STYLE}\n `); +} + async function hideTopHeaderInBuiltPage(pagePath) { const html = await readFile(pagePath, 'utf8'); - if (html.includes('data-testenv-hide-header')) { + const nextHtml = hideTopHeaderInBuiltHtml(html); + + if (nextHtml === html) { return; } - const nextHtml = html.replace('', `${TESTENV_HIDE_HEADER_STYLE}\n `); await writeFile(pagePath, nextHtml, 'utf8'); } @@ -541,11 +547,7 @@ async function createTemporaryDocsAppPlaceholder() { } async function removeTemporaryDocsAppPlaceholder() { - await writeFile( - docsAppPlaceholderPath, - '
This will be overwritten during the npm build.
', - 'utf8', - ); + await writeFile(docsAppPlaceholderPath, 'This will be overwritten during the npm build.
', 'utf8'); } async function main() { @@ -578,26 +580,19 @@ async function main() { await createTemporaryDocsAppPlaceholder(); try { - runCommand( - 'pnpm', - ['--dir', 'docs-src', 'exec', 'docusaurus', 'build', '--out-dir', '../testenv/site'], - { - env: { - DOCS_BASE_URL: fullSiteBaseUrl, - DOCS_SITE_URL: 'https://eviltester.github.io', - DOCS_TEST_BUILD: 'true', - DOCS_TEST_CANONICAL_SITE_URL: TESTENV_CANONICAL_SITE_URL, - }, + runCommand('pnpm', ['--dir', 'docs-src', 'exec', 'docusaurus', 'build', '--out-dir', '../testenv/site'], { + env: { + DOCS_BASE_URL: fullSiteBaseUrl, + DOCS_SITE_URL: 'https://eviltester.github.io', + DOCS_TEST_BUILD: 'true', + DOCS_TEST_CANONICAL_SITE_URL: TESTENV_CANONICAL_SITE_URL, }, - ); + }); } finally { await removeTemporaryDocsAppPlaceholder(); } await copyWebBuildIntoDirectory(tempWebDir, fullSiteDir); - await hideTopHeaderInBuiltPage(path.join(fullSiteDir, 'app.html')); - await hideTopHeaderInBuiltPage(path.join(fullSiteDir, 'generator.html')); - await hideTopHeaderInBuiltPage(path.join(fullSiteDir, 'combinatorial.html')); await rm(tempWebDir, { recursive: true, force: true, @@ -627,6 +622,7 @@ export { createLlmsTxt, createSiteRobotsTxt, createTestenvRobotsTxt, + hideTopHeaderInBuiltHtml, renderIndexPage, }; diff --git a/tests/integration/create-testenv-seo.test.js b/tests/integration/create-testenv-seo.test.js index 218bd648..71d5f079 100644 --- a/tests/integration/create-testenv-seo.test.js +++ b/tests/integration/create-testenv-seo.test.js @@ -5,6 +5,7 @@ import { createLlmsTxt, createSiteRobotsTxt, createTestenvRobotsTxt, + hideTopHeaderInBuiltHtml, renderIndexPage, } from '../../scripts/create-testenv.mjs'; @@ -47,7 +48,9 @@ describe('create-testenv SEO helpers', () => { }); test('injects the test environment indicator into rewritten html pages', () => { - const html = applySeoDirectivesToHtml('