Nothing
test_that("apply_mitigations updates probability and recomputes RPN", {
rr <- create_risk_register(make_test_risks())
old_rpn <- rr$rpn[rr$risk_id == "R001"]
updates <- data.frame(
risk_id = "R001",
probability = 2,
status = "mitigated"
)
rr2 <- apply_mitigations(rr, updates)
expect_s3_class(rr2, "risk_register")
expect_equal(rr2$probability[rr2$risk_id == "R001"], 2)
expect_equal(rr2$status[rr2$risk_id == "R001"], "mitigated")
# RPN should decrease
expect_true(rr2$rpn[rr2$risk_id == "R001"] < old_rpn)
})
test_that("apply_mitigations updates mitigation notes", {
rr <- create_risk_register(make_test_risks())
updates <- data.frame(
risk_id = "R002",
mitigation = "Added validation check"
)
rr2 <- apply_mitigations(rr, updates)
expect_equal(rr2$mitigation[rr2$risk_id == "R002"], "Added validation check")
})
test_that("apply_mitigations warns on unknown risk_ids", {
rr <- create_risk_register(make_test_risks())
updates <- data.frame(risk_id = "RZZZ", probability = 1)
expect_warning(
apply_mitigations(rr, updates),
"unknown risk_id"
)
})
test_that("apply_mitigations rejects missing risk_id column", {
rr <- create_risk_register(make_test_risks())
expect_error(
apply_mitigations(rr, data.frame(probability = 1)),
"risk_id"
)
})
test_that("apply_mitigations does not affect non-updated risks", {
rr <- create_risk_register(make_test_risks())
old_rpn_r002 <- rr$rpn[rr$risk_id == "R002"]
updates <- data.frame(risk_id = "R001", probability = 1)
rr2 <- apply_mitigations(rr, updates)
expect_equal(rr2$rpn[rr2$risk_id == "R002"], old_rpn_r002)
})
test_that("compare_risk_registers detects new and resolved risks", {
r1 <- data.frame(
risk_id = c("R001", "R002"),
description = c("A", "B"),
probability = c(4, 3), impact = c(5, 4), detectability = c(2, 3)
)
r2 <- data.frame(
risk_id = c("R001", "R003"),
description = c("A", "C"),
probability = c(2, 3), impact = c(5, 3), detectability = c(2, 2)
)
rr1 <- create_risk_register(r1)
rr2 <- create_risk_register(r2)
comp <- compare_risk_registers(rr1, rr2)
expect_equal(comp$new_risks, "R003")
expect_equal(comp$resolved_risks, "R002")
})
test_that("compare_risk_registers computes RPN delta", {
r1 <- data.frame(
risk_id = "R001", description = "A",
probability = 4, impact = 5, detectability = 2
)
r2 <- data.frame(
risk_id = "R001", description = "A",
probability = 2, impact = 5, detectability = 2
)
rr1 <- create_risk_register(r1)
rr2 <- create_risk_register(r2)
comp <- compare_risk_registers(rr1, rr2)
expect_equal(nrow(comp$rpn_changes), 1)
expect_true(comp$rpn_changes$rpn_delta[1] < 0) # RPN decreased
expect_true(comp$delta_mean_rpn < 0)
})
test_that("compare_risk_registers detects level transitions", {
r1 <- data.frame(
risk_id = "R001", description = "A",
probability = 5, impact = 5, detectability = 5 # RPN=125, critical
)
r2 <- data.frame(
risk_id = "R001", description = "A",
probability = 1, impact = 1, detectability = 1 # RPN=1, low
)
rr1 <- create_risk_register(r1)
rr2 <- create_risk_register(r2)
comp <- compare_risk_registers(rr1, rr2)
expect_true(comp$level_transitions$changed[1])
expect_equal(comp$level_transitions$level_before[1], "critical")
expect_equal(comp$level_transitions$level_after[1], "low")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.