test(system): Maintenance no longer hands off; raise coverage floors

The System shell test expected Maintenance's D94 hand-off; the section is
native now. coverage:update sets the new modules' floors from the
measured run (cache-ownership 94, maintenance-review 94,
system-maintenance 92 lines) and raises the floors other files passed.
This commit is contained in:
Vito Sansevero
2026-10-24 17:56:57 -07:00
parent 46136e2ab7
commit dc17726800
2 changed files with 30 additions and 31 deletions
+5 -6
View File
@@ -427,7 +427,6 @@ for (const width of [1600, 390]) test(`overview and handoff render with concept
const SYSTEM_SECTION_LABELS = ['Overview', 'Appearance', 'Sources & scans', 'Integrations', 'Auto-tagging', 'Maintenance',
'Backup & export', 'Diagnostics & logs'];
const SYSTEM_HASHES = ['overview', 'appearance', 'sources', 'integrations', 'tagging', 'maintenance', 'backups', 'diagnostics'];
const SYSTEM_HANDOFFS = { maintenance: ['/prompt_manager/admin', '/prompt_manager/gallery'] };
test('System is native: the concept shell, section navigation, sections, hand-offs and the Save row', async ({ page }) => {
const mutations = [];
@@ -464,20 +463,20 @@ test('System is native: the concept shell, section navigation, sections, hand-of
// The section changes in place: focus stays on the pressed section, not the page title.
await expect(button).toBeFocused();
// S2 Task 6: Overview is native (workspace-system.spec.mjs), and so are Appearance (S3 Task 8) and Sources & scans
// (S4 Task 11, workspace-system-sources.spec.mjs, its update notice shown in a fresh browser); Maintenance shows
// its health-check notice above the hand-off (D123); every other section hands off.
// (S4 Task 11, workspace-system-sources.spec.mjs, its update notice shown in a fresh browser) and Maintenance (S7
// Task 19, workspace-system-maintenance.spec.mjs); every other section hands off.
if (hash === 'overview') await expect(layout.locator(':scope > .summary-metrics')).toBeVisible();
if (hash === 'sources') await expect(layout.locator('#source-list .operation')).toHaveCount(2);
expect(await layout.evaluate(node => [...node.children].map(child => `${child.localName}.${child.className}`)))
.toEqual({ overview: ['div.summary-metrics', 'div.two-col', 'div.save-row'], appearance: ['section.surface', 'div.save-row'],
sources: ['div.notice', 'section.surface', 'div.save-row'],
maintenance: ['div.notice', 'section.surface handoff', 'div.save-row'] }[hash]
maintenance: ['div.notice', 'section.surface', 'section.surface', 'div.save-row'] }[hash]
?? ['section.surface handoff', 'div.save-row']);
if (['overview', 'appearance', 'sources'].includes(hash)) continue;
if (['overview', 'appearance', 'sources', 'maintenance'].includes(hash)) continue;
const handoff = layout.locator('section.handoff');
await expect(handoff.locator('h2')).toHaveText('Your current tools are ready');
expect(await handoff.locator('a.workspace-link').evaluateAll(links => links.map(link => link.getAttribute('href'))))
.toEqual(SYSTEM_HANDOFFS[hash] ?? ['/prompt_manager/admin']);
.toEqual(['/prompt_manager/admin']);
await expect(layout.locator('#settings-status')).toHaveText('No unsaved changes.');
await expect(page.locator('aside.sidebar a[href="#/system"]')).toHaveAttribute('aria-current', 'page');
}
+25 -25
View File
@@ -1,9 +1,9 @@
{
"admin.js": {
"lines": 31,
"lines": 32,
"branches": 58,
"functions": 26,
"statements": 31
"functions": 27,
"statements": 32
},
"api-client.js": {
"lines": 98,
@@ -12,10 +12,10 @@
"statements": 98
},
"cache-ownership.js": {
"lines": 80,
"branches": 80,
"functions": 80,
"statements": 80
"lines": 94,
"branches": 89,
"functions": 98,
"statements": 94
},
"classic-node.js": {
"lines": 98,
@@ -49,7 +49,7 @@
},
"gallery.js": {
"lines": 45,
"branches": 64,
"branches": 66,
"functions": 48,
"statements": 45
},
@@ -194,7 +194,7 @@
"workspace/file-inspector.mjs": {
"lines": 96,
"branches": 93,
"functions": 92,
"functions": 93,
"statements": 96
},
"workspace/heading.mjs": {
@@ -247,7 +247,7 @@
},
"workspace/image-tagging.mjs": {
"lines": 97,
"branches": 90,
"branches": 92,
"functions": 88,
"statements": 97
},
@@ -344,7 +344,7 @@
"workspace/library-location.mjs": {
"lines": 94,
"branches": 91,
"functions": 92,
"functions": 93,
"statements": 94
},
"workspace/library-state.mjs": {
@@ -378,14 +378,14 @@
"statements": 97
},
"workspace/local-resolver-stages.mjs": {
"lines": 94,
"lines": 95,
"branches": 93,
"functions": 98,
"statements": 94
"statements": 95
},
"workspace/local-resolver-support.mjs": {
"lines": 96,
"branches": 80,
"branches": 81,
"functions": 98,
"statements": 96
},
@@ -414,10 +414,10 @@
"statements": 98
},
"workspace/maintenance-review.mjs": {
"lines": 80,
"branches": 80,
"functions": 80,
"statements": 80
"lines": 94,
"branches": 81,
"functions": 90,
"statements": 94
},
"workspace/media-viewer.mjs": {
"lines": 98,
@@ -438,10 +438,10 @@
"statements": 98
},
"workspace/prompt-blocks.mjs": {
"lines": 90,
"branches": 92,
"lines": 98,
"branches": 95,
"functions": 98,
"statements": 90
"statements": 98
},
"workspace/prompt-inspector.mjs": {
"lines": 98,
@@ -499,15 +499,15 @@
},
"workspace/system-controls.mjs": {
"lines": 98,
"branches": 87,
"branches": 89,
"functions": 89,
"statements": 98
},
"workspace/system-maintenance.mjs": {
"lines": 80,
"lines": 92,
"branches": 80,
"functions": 80,
"statements": 80
"functions": 92,
"statements": 92
},
"workspace/system-overview.mjs": {
"lines": 96,