30 lines
1.7 KiB
JavaScript
30 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
const test = require('node:test');
|
|
|
|
const root = path.resolve(__dirname, '../..');
|
|
|
|
test('A-060 applies deep Settings focus before revealing the destination page', () => {
|
|
const source = fs.readFileSync(path.join(root, 'renderer/modules/navigation.js'), 'utf8');
|
|
const focus = source.indexOf('applyRouteFocus(route);', source.indexOf('async function navigate'));
|
|
const reveal = source.indexOf('activatePage(route.page);', source.indexOf('async function navigate'));
|
|
assert.ok(focus >= 0 && reveal >= 0 && focus < reveal, 'route focus must be applied before page activation');
|
|
assert.match(source, /applyReliabilityFocus\(route\.focus\)/);
|
|
assert.match(source, /loadOperationsReliability\(\{ focus: route\.focus \}\)/);
|
|
|
|
const operations = fs.readFileSync(path.join(root, 'renderer/modules/operations.js'), 'utf8');
|
|
assert.match(operations, /if \(focus === 'security'\)[\s\S]*renderSessions\(await window\.pork\.authSessions\(\)\);[\s\S]*return;/);
|
|
});
|
|
|
|
test('P7 acceptance contracts remain mapped to concrete automated evidence', () => {
|
|
const cacheTests = fs.readFileSync(path.join(root, 'test/server/ch-0701-media-cache.test.js'), 'utf8');
|
|
const importTests = fs.readFileSync(path.join(root, 'test/server/ch-0702-media-import.test.js'), 'utf8');
|
|
const disclosureTests = fs.readFileSync(path.join(root, 'test/server/ch-0703-expert-navigation.test.js'), 'utf8');
|
|
assert.match(importTests, /recoverable provider cover/);
|
|
assert.match(cacheTests, /preserve pinned cache and imported originals/);
|
|
assert.match(disclosureTests, /Expert mode off|Expert-only|Expert commands/i);
|
|
});
|