import assert from 'node:assert/strict'; import {readFileSync, readdirSync, existsSync} from 'node:fs'; import {join} from 'node:path'; const read = p => readFileSync(p, 'utf8'); const config = read('docusaurus.config.ts'); assert(config.includes("baseUrl: '/eldorado-v1/documentation/'")); assert(config.includes("onBrokenLinks: 'throw'")); assert(config.includes("hashed: 'filename'")); for (const file of readdirSync('docs', {recursive: true}).filter(f => /\.mdx?$/.test(f))) { const doc = read(join('docs', file)); assert(/^---\n[\s\S]*?title: .+\n[\s\S]*?description: .+\n/.test(doc), `Missing metadata: ${file}`); } const css = read('src/css/custom.css'); assert(css.includes('#ffc950') && css.includes('@fontsource/lato/400.css')); const workflow = read('.gitea/workflows/pages.yml'); assert(workflow.includes('mountpoint -q')); assert(workflow.includes("gitea.event_name == 'push' && gitea.ref == 'refs/heads/main'")); if (process.argv.includes('--build')) { for (const route of ['index.html','docs/overview/index.html','docs/maintain/index.html','docs/reference/index.html','404.html','organization/structure/index.html','strategy/index.html','contribution/index.html','contribution/diagrams/index.html','diagrams/organization-structure/index.html']) { assert(existsSync(join('build',route)), `Missing route: ${route}`); } assert(!readdirSync('build/diagrams', {recursive: true}).some(f => f.endsWith('.delivery.json')), 'Private build receipts must not be published'); const diagram = read('build/diagrams/organization-structure/index.html'); assert(diagram.includes('Coordinates') && diagram.includes('node-technology')); assert(!/A: placement|E: careers|J: advertised/.test(diagram)); assert(!diagram.includes('Example leadership')); for (const id of ['discovery','orders','seller','payments','trust','data','platform']) assert(diagram.includes(`node-squad-${id}`)); const reporting = read('build/diagrams/organization-reporting/index.html'); assert(reporting.includes('AI Architect') && reporting.includes('Leads')); assert(!/A: assumed|J: direct/.test(reporting)); const structure = read('build/organization/structure/index.html'); assert(structure.includes('Vladas Jurkevičius') && structure.includes('operating model')); assert(!/Research snapshot|Job-advertised|careers\.eldorado\.gg|Assumed/.test(structure)); assert(!structure.includes('Illustrative integration example')); assert(!diagram.includes('/opt/data/'), 'No build paths in published diagrams'); const home = read('build/index.html'); assert(/