/home/techb158/trello.abdallabala.com/test
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');
});