/home/techb158/cosmic.abdallabala.com/tests
NameSizeModeActions
access-control.test.js56180666editdlrm
api-workflow.test.js71450666editdlrm
gate-workflow.test.js29460666editdlrm
integration-workflow.test.js37030666editdlrm
mitigation-workflow.test.js33450666editdlrm
oauth-live-connectors.test.js56220666editdlrm
production-hardening.test.js27750666editdlrm
reporting-workflow.test.js38000666editdlrm
risk-engine.test.js12440666editdlrm
storage-layer.test.js32720666editdlrm
Edit: /home/techb158/cosmic.abdallabala.com/tests/mitigation-workflow.test.js (3345B)
const assert = require("assert"); const fs = require("fs"); const path = require("path"); const os = require("os"); const { JsonDatabase } = require("../src/storage/jsonDatabase.js"); const { DashboardService } = require("../src/services/dashboardService.js"); const { RiskRepository } = require("../src/repositories/riskRepository.js"); const source = path.join(__dirname, "..", "data", "database.json"); const temp = path.join(os.tmpdir(), `cosmic-mitigation-db-${Date.now()}.json`); fs.copyFileSync(source, temp); const database = new JsonDatabase(temp); const risks = new RiskRepository(database); const dashboard = new DashboardService(database); const projectId = "cosmic-ai-risk-001"; const risk = risks.createRisk(projectId, { title: "Mitigation workflow test risk", dimension: "Technical", domain: "Technical risks", lifecyclePhase: "Testing and performance evaluation", probability: 4, impact: 5, detectability: 4, owner: "Mitigation Test Owner", evidence: "Initial mitigation workflow evidence" }); const before = dashboard.getDashboard(projectId).dashboard.scoredRisks.find(item => item.id === risk.id); assert.ok(before.residualScore >= 50, "Seeded test risk should have material residual risk"); const mitigation = risks.createMitigation(risk.id, { title: "Document mitigation workflow control", description: "Attach evidence and complete the control before deployment.", status: "In progress", progress_percent: 40, effectiveness_percent: 50, owner: "Mitigation Test Owner", dueDate: "2026-07-15", evidenceTitle: "Control design review created", evidenceUri: "https://example.invalid/evidence/control-design", evidenceType: "Review" }); assert.ok(mitigation.id, "Mitigation should be created"); assert.ok(mitigation.evidenceArtifacts.length >= 1, "Mitigation should expose linked evidence"); const updated = risks.updateMitigation(mitigation.id, { title: mitigation.title, status: "Done", progress_percent: 100, effectiveness_percent: 85, evidenceTitle: "Control effectiveness validated", evidenceType: "Test" }); assert.strictEqual(updated.status, "Done", "Mitigation status should update to Done"); assert.strictEqual(updated.progress_percent, 100, "Mitigation progress should update to 100"); assert.ok(updated.evidenceArtifacts.length >= 2, "Updated mitigation should retain and add evidence"); const after = dashboard.getDashboard(projectId).dashboard.scoredRisks.find(item => item.id === risk.id); assert.ok(after.residualScore < before.residualScore, "Completed mitigation should reduce residual risk"); const listed = risks.listMitigations(projectId).find(item => item.id === mitigation.id); assert.ok(listed, "Mitigation should appear in project mitigation list"); assert.strictEqual(listed.riskId, risk.id, "Mitigation list item should include linked risk id"); assert.ok(Number.isFinite(listed.riskResidualScore) || listed.riskResidualScore === undefined, "List item should be compatible with dashboard enrichment"); const deleted = risks.deleteMitigation(mitigation.id); assert.strictEqual(deleted, true, "Mitigation should delete"); assert.strictEqual(risks.getMitigation(mitigation.id), null, "Deleted mitigation should not be readable"); risks.deleteRisk(risk.id); fs.unlinkSync(temp); console.log("All COSMIC AI-Risk mitigation workflow tests passed.");