/
home
/
techb158
/
trello.abdallabala.com
/
test
/
/home/techb158/trello.abdallabala.com/test
mkdir
upload
Name
Size
Mode
Actions
riskEngine.test.mjs
1699
0666
edit
dl
rm
Edit:
/home/techb158/trello.abdallabala.com/test/riskEngine.test.mjs
(1699B)
import assert from 'node:assert/strict'; import test from 'node:test'; import { scoreRiskAssessment, getReferenceTaxonomy } from '../src/riskEngine.js'; import sample from '../samples/risk-assessment.json' with { type: 'json' }; test('taxonomy exposes the COSMIC AI risk reference fields used by the Power-Up', () => { const taxonomy = getReferenceTaxonomy(); assert.ok(taxonomy.lifecyclePhases.includes('testing_evaluation')); assert.ok(taxonomy.projectTypologies.includes('ai_enabler')); assert.ok(taxonomy.dimensions.includes('technical')); assert.ok(taxonomy.categories.includes('legal_ethical')); assert.ok(taxonomy.gateCriteria.includes('deployment_readiness')); }); test('sample assessment returns a bounded score and blocked deployment gate', () => { const result = scoreRiskAssessment(sample); assert.equal(typeof result.score, 'number'); assert.ok(result.score >= 0 && result.score <= 100); assert.equal(result.gate.deploymentReady, false); assert.ok(result.gate.blockingReasons.length >= 1); assert.equal(result.highestRisk.title, 'Model deployment readiness risk'); }); test('approved, mitigated, reviewed assessment can pass the deployment gate', () => { const result = scoreRiskAssessment({ ...sample, approvalState: 'approved', metrics: { modelPerformanceScore: 85, dataReadinessScore: 90, ethicalReviewCompleted: true, legalReviewCompleted: true }, risks: sample.risks.map((risk) => ({ ...risk, probability: 2, impact: 2, detectionDifficulty: 2, mitigationCompleteness: 90 })) }); assert.equal(result.gate.deploymentReady, true); assert.equal(result.status, 'low'); });
Save
cmd:
run