docs: split organization pages and simplify diagram controls
Build and publish Eldorado documentation / build (pull_request) Successful in 33s
Build and publish Eldorado documentation / build (pull_request) Successful in 33s
This commit is contained in:
1 parent
db427f99da
commit
d760c14dab
10 files changed
+87
-37
No files matched your search
@@ -24,7 +24,6 @@ for (const file of readdirSync('diagrams').sort()) {
|
||||
run(['deliver',type,input,output,'--quality','showcase','--json']);
|
||||
run(['check',output,'--json','--require-provenance']);
|
||||
renameSync(`static/diagrams/${name}/index.delivery.json`, `.cache/archify/${name}.delivery.json`);
|
||||
copyFileSync(input,`static/diagrams/${name}.json`);
|
||||
}
|
||||
copyFileSync('vendor/archify/LICENSE','static/diagrams/ARCHIFY-LICENSE.txt');
|
||||
copyFileSync('vendor/archify/THIRD_PARTY_NOTICES.md','static/diagrams/THIRD-PARTY-NOTICES.md');
|
||||
+23
-1
@@ -20,6 +20,7 @@ test('real build removes stale diagrams, keeps receipts private and rejects coll
|
||||
writeSpec('old');
|
||||
let result = build(); assert.equal(result.status,0,result.stderr);
|
||||
assert(existsSync(join(root,'static/diagrams/old/index.html')));
|
||||
assert(!existsSync(join(root,'static/diagrams/old.json')));
|
||||
assert(!readdirSync(join(root,'static/diagrams'),{recursive:true}).some(p=>p.endsWith('.delivery.json')));
|
||||
unlinkSync(join(root,'diagrams/old.architecture.json'));
|
||||
writeSpec('new');
|
||||
@@ -42,7 +43,7 @@ test('three independent section menus and Structure first', () => {
|
||||
for (const section of ['Organization', 'Strategy', 'Contribution']) assert(config.includes(`label: '${section}'`));
|
||||
assert(!config.includes("label: 'Documentation'"));
|
||||
assert(!config.includes("label: 'Maintainer guide'"));
|
||||
assert(read('sidebars/organization.ts').includes("organizationSidebar: ['structure']"));
|
||||
assert(read('sidebars/organization.ts').includes("organizationSidebar: ['structure', 'collaboration', 'sdlc']"));
|
||||
for (const section of ['organization','strategy','contribution']) assert(config.includes(`id: '${section}'`));
|
||||
});
|
||||
test('Archify is pinned, licensed and rebuilt, not a remote embed', () => {
|
||||
@@ -58,6 +59,11 @@ test('Archify is pinned, licensed and rebuilt, not a remote embed', () => {
|
||||
assert(wrapper.includes('showModal()') && wrapper.includes('onClose='));
|
||||
assert(!wrapper.includes('target="_blank"'));
|
||||
assert(wrapper.includes('Close full-screen diagram'));
|
||||
assert(!wrapper.includes('JSON source') && !wrapper.includes('download>'));
|
||||
assert(!wrapper.includes('Open full viewer'));
|
||||
assert(wrapper.includes('aria-label={`Expand ${title}`}'));
|
||||
assert(wrapper.includes('aria-hidden="true"'));
|
||||
assert(read('src/css/custom.css').includes('justify-content: flex-end'));
|
||||
});
|
||||
test('Product owns two teams and Technology owns five separate teams', () => {
|
||||
const spec = JSON.parse(read('diagrams/organization-structure.architecture.json'));
|
||||
@@ -103,6 +109,22 @@ test('departments share one row and each has delivery teams below it', () => {
|
||||
assert(!(a.pos[0] < b.pos[0] + b.size[0] && a.pos[0] + a.size[0] > b.pos[0] && a.pos[1] < b.pos[1] + b.size[1] && a.pos[1] + a.size[1] > b.pos[1]), `${a.id} overlaps ${b.id}`);
|
||||
}
|
||||
});
|
||||
test('organization content is split into linked focused pages', () => {
|
||||
const structure = read('docs/organization/structure.mdx');
|
||||
const collaboration = read('docs/organization/collaboration.mdx');
|
||||
const sdlc = read('docs/organization/sdlc.mdx');
|
||||
assert(!structure.includes('## How the departments work together'));
|
||||
assert(!structure.includes('## Leadership and delivery structure'));
|
||||
assert(!structure.includes('name="organization-reporting"'));
|
||||
assert(collaboration.includes('## How the departments work together'));
|
||||
for (const outcome of ['Better buyer experience', 'Stronger seller experience', 'Safe and trustworthy trading', 'Sustainable growth', 'AI-powered execution']) assert(collaboration.includes(outcome));
|
||||
assert(sdlc.includes('title: SDLC — Software Delivery Life Cycle'));
|
||||
assert(sdlc.includes('name="organization-reporting"'));
|
||||
for (const role of ['Head of Engineering', 'AI Architect', 'Operational Quality', 'Brand Team Lead']) assert(sdlc.includes(role));
|
||||
for (const [name, page] of [['structure',structure],['collaboration',collaboration],['sdlc',sdlc]]) {
|
||||
for (const other of ['structure','collaboration','sdlc'].filter(n => n !== name)) assert(page.includes(`./${other}.mdx`));
|
||||
}
|
||||
});
|
||||
test('organization page presents an operating model, not research notes', () => {
|
||||
const page = read('docs/organization/structure.mdx');
|
||||
assert(page.includes('operating model') && page.includes('## Departments and teams'));
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ 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']) {
|
||||
for (const route of ['index.html','docs/overview/index.html','docs/maintain/index.html','docs/reference/index.html','404.html','organization/structure/index.html','organization/collaboration/index.html','organization/sdlc/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');
|
||||
|
||||
Reference in new issue
Block a user