/home/techb158/cosmic.abdallabala.com/tests
Edit: /home/techb158/cosmic.abdallabala.com/tests/risk-engine.test.js (1244B)
const fs = require("fs");
const path = require("path");
const assert = require("assert");
const engine = require("../public/risk-engine.js");
const data = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "data", "sample-project.json"), "utf8"));
const dashboard = engine.calculateDashboard(data);
assert.strictEqual(dashboard.summary.totalRisks, 35, "Expected 35 risks");
assert(dashboard.summary.overallScore >= 0 && dashboard.summary.overallScore <= 100, "Overall score must be normalized");
assert(["Ready", "Warning", "Blocked"].includes(dashboard.gate.status), "Gate status must be valid");
assert(dashboard.gate.criteria.length >= 8, "Expected gate criteria");
assert(Object.keys(dashboard.dimensions).includes("Organizational"), "Missing Organizational dimension");
assert(Object.keys(dashboard.dimensions).includes("Technical"), "Missing Technical dimension");
assert(Object.keys(dashboard.dimensions).includes("Human"), "Missing Human dimension");
const scored = engine.scoreRisk({ probability: 5, impact: 5, detectability: 5, mitigationProgress: 0, mitigationEffectiveness: 0 });
assert.strictEqual(scored.normalizedScore, 100, "Max raw risk should normalize to 100");
console.log("All COSMIC AI-Risk engine tests passed.");