MCPcopy
hub / github.com/affaan-m/ECC / runTests

Function runTests

tests/scripts/operator-readiness-dashboard.test.js:302–836  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

300}
301
302function runTests() {
303 console.log('\n=== Testing operator-readiness-dashboard.js ===\n');
304
305 let passed = 0;
306 let failed = 0;
307
308 if (test('parseArgs accepts dashboard flags and rejects invalid values', () => {
309 const rootDir = createTempDir('operator-dashboard-args-');
310
311 try {
312 const parsed = parseArgs([
313 'node',
314 'script',
315 '--format=json',
316 `--root=${rootDir}`,
317 '--skip-github',
318 '--allow-untracked',
319 'docs/drafts/',
320 '--repo',
321 'affaan-m/ECC',
322 '--generated-at',
323 '2026-05-15T00:00:00.000Z'
324 ]);
325
326 assert.strictEqual(parsed.format, 'json');
327 assert.strictEqual(parsed.root, path.resolve(rootDir));
328 assert.strictEqual(parsed.skipGithub, true);
329 assert.deepStrictEqual(parsed.allowUntracked, ['docs/drafts/']);
330 assert.deepStrictEqual(parsed.repos, ['affaan-m/ECC']);
331 assert.strictEqual(parsed.generatedAt, '2026-05-15T00:00:00.000Z');
332
333 assert.throws(() => parseArgs(['node', 'script', '--format', 'xml']), /Invalid format/);
334 assert.throws(() => parseArgs(['node', 'script', '--write', 'dashboard.md', '--format', 'text']), /--write requires/);
335 assert.throws(() => parseArgs(['node', 'script', '--max-open-prs', 'x']), /Invalid --max-open-prs/);
336 assert.throws(() => parseArgs(['node', 'script', '--unknown']), /Unknown argument/);
337 } finally {
338 cleanup(rootDir);
339 }
340 })) passed++; else failed++;
341
342 if (test('seeded repo emits an objective audit with remaining work', () => {
343 const rootDir = createTempDir('operator-dashboard-report-');
344
345 try {
346 seedRepo(rootDir);
347 const report = buildSeededReport(rootDir);
348
349 assert.strictEqual(report.schema_version, 'ecc.operator-readiness-dashboard.v1');
350 assert.strictEqual(report.generatedAt, '2026-05-15T00:00:00.000Z');
351 assert.strictEqual(report.dashboardReady, true);
352 assert.strictEqual(report.ready, false);
353 assert.strictEqual(report.publicationReady, false);
354 assert.ok(report.requirements.some(item => item.id === 'completion-dashboard' && item.status === 'complete'));
355 assert.ok(report.requirements.some(item => (
356 item.id === 'ecc-preview-pack'
357 && item.status === 'current'
358 && item.evidence.includes('deterministic smoke gate')
359 && item.gap === 'repeat clean-checkout preview-pack smoke before publication'

Calls 11

buildSeededReportFunction · 0.85
okMethod · 0.80
testFunction · 0.70
createTempDirFunction · 0.70
cleanupFunction · 0.70
seedRepoFunction · 0.70
runFunction · 0.70
runProcessFunction · 0.70
parseArgsFunction · 0.50
renderTextFunction · 0.50
renderMarkdownFunction · 0.50

Tested by

no test coverage detected