docs: [verified] move metric contracts under Measurement
Build and publish Eldorado documentation / build (pull_request) Successful in 41s

This commit is contained in:
jarvis-at-skic committed 2026-10-06 23:25:30 +00:00
1 parent b9c2047c61
commit 85852f0744
45 files changed
+1101 -433

No files matched your search

+15 -9
View File
@@ -8,9 +8,12 @@ const fs = require('node:fs');
const prefix = '/eldorado-v1/documentation/strategy/';
const first = 'Stage - 01 - Skills Adoption';
const second = 'Stage - 02 - Autonomous Agent';
const topics = ['Governance','Quality','Adoption','Measurement','Maintenance','Reference'];
const ids = ['target-operating-model','roadmap','stage-01-skills-adoption','skills-governance','skills-quality','skills-adoption','measurement','skills-maintenance','reference/measurement-contracts','stage-02-autonomous-agent'];
const titles = ['Target','Roadmap',first,'Skills governance','Skills quality','Skills adoption','Skills Measurement','Skills maintenance','Skills KPI reference',second];
const topics = ['Governance','Quality','Adoption','Measurement','Maintenance'];
const metrics = JSON.parse(fs.readFileSync('research/ai-adoption/measurement-migration.json','utf8')).metrics;
const childIds = [...metrics.map(m => m.docId),'measurement/collection-and-safeguards','measurement/synthetic-example'];
const childTitles = [...metrics.map(m => m.title),'Collection and safeguards','Run the synthetic measurement example'];
const ids = ['target-operating-model','roadmap','stage-01-skills-adoption','skills-governance','skills-quality','skills-adoption','measurement',...childIds,'skills-maintenance','stage-02-autonomous-agent'];
const titles = ['Target','Roadmap',first,'Skills governance','Skills quality','Skills adoption','Skills Measurement',...childTitles,'Skills maintenance',second];
const browser = await chromium.launch({headless:true, executablePath:process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE, args:['--no-sandbox']});
const results = [];
try {
@@ -39,11 +42,12 @@ const fs = require('node:fs');
await category.getByRole('link', {name:'Governance', exact:true}).waitFor({state:'visible'});
assert.deepEqual(await visibleLabels(), ['Target','Roadmap',first,...topics,second]);
assert.deepEqual(await category.locator('ul .menu__link').filter({visible:true}).allTextContents(), topics);
const reference = category.getByRole('button', {name:'Reference', exact:true});
const measurement = category.locator('.theme-doc-sidebar-item-category').filter({has:page.getByRole('link', {name:'Measurement', exact:true})});
const reference = measurement.locator(':scope > .menu__list-item-collapsible > button.menu__caret');
await reference.focus();
await page.keyboard.press('Enter');
await category.getByRole('link', {name:'Measurement Contracts', exact:true}).waitFor({state:'visible'});
assert.deepEqual(await visibleLabels(), ['Target','Roadmap',first,...topics,'Measurement Contracts',second]);
await category.getByRole('link', {name:'Validated task success', exact:true}).waitFor({state:'visible'});
assert.deepEqual(await visibleLabels(), ['Target','Roadmap',first,...topics.slice(0,4),...childTitles,'Maintenance',second]);
await reference.click();
await page.screenshot({path:`${output}/${width}-expanded.png`, animations:'disabled'});
await caret.click();
@@ -68,10 +72,12 @@ const fs = require('node:fs');
else assert.equal(await prev.count(), 0);
if (index < ids.length-1) assert.equal(await next.getAttribute('href'), `${prefix}${ids[index+1]}/`);
else assert.equal(await next.count(), 0);
if (index >= 3 && index <= 7) {
if (index >= 3 && index < ids.length - 1) {
assert.equal(await page.locator('.breadcrumbs a').filter({hasText:first}).getAttribute('href'), `${prefix}stage-01-skills-adoption/`);
menu = await openMenu();
assert.deepEqual(await visibleLabels(), ['Target','Roadmap',first,...topics,second]);
const expectedTopics = id === 'measurement' || id.startsWith('measurement/') ? [...topics.slice(0,4),...childTitles,'Maintenance'] : topics;
assert.deepEqual(await visibleLabels(), ['Target','Roadmap',first,...expectedTopics,second]);
if (id.startsWith('measurement/')) assert.equal(await page.locator('.breadcrumbs a').filter({hasText:'Measurement'}).getAttribute('href'), `${prefix}measurement/`);
await closeMenu();
}
assert(!await page.evaluate(() => document.documentElement.scrollWidth > innerWidth), `${width}: overflow on ${id}`);
@@ -84,6 +90,6 @@ const fs = require('node:fs');
} finally {await context.close();}
}
assert.equal(results.length, 4);
console.log('PASS: 4 desktop/mobile viewports; all 10 routes; linked category, keyboard expansion, nested Reference, breadcrumbs, next/previous and no overflow/errors');
console.log(`PASS: 4 desktop/mobile viewports; all ${ids.length} routes; linked Measurement category, keyboard expansion, breadcrumbs, next/previous and no overflow/errors`);
} finally {await browser.close();}
})().catch(error => {console.error(error); process.exitCode = 1;});