mirror of
https://github.com/inspec/inspec
synced 2024-11-25 22:20:27 +00:00
Added failure and passed conditions in enhanced_outcomes
Signed-off-by: Nikita Mathur <nikita.mathur@chef.io>
This commit is contained in:
parent
4e83f395c8
commit
9d531b68de
2 changed files with 21 additions and 10 deletions
|
@ -120,14 +120,16 @@ module Inspec::Formatters
|
||||||
|
|
||||||
def determine_control_enhanced_outcome(control)
|
def determine_control_enhanced_outcome(control)
|
||||||
if control_has_error(control)
|
if control_has_error(control)
|
||||||
return { name: "Error", abbrev: "ERR" }
|
{ name: "Error", abbrev: "ERR" }
|
||||||
elsif control[:impact].to_f == 0.0
|
elsif control[:impact].to_f == 0.0
|
||||||
return { name: "Not Applicable", abbrev: "N/A" }
|
{ name: "Not Applicable", abbrev: "N/A" }
|
||||||
elsif control_has_all_tests_skipped(control)
|
elsif control_has_all_tests_skipped(control)
|
||||||
return { name: "Not Reviewed", abbrev: "N/R" }
|
{ name: "Not Reviewed", abbrev: "N/R" }
|
||||||
|
elsif control[:results].any? { |r| r[:status] == "failed" }
|
||||||
|
{ name: "Failed", abbrev: "fail"}
|
||||||
|
else
|
||||||
|
{ name: "Passed", abbrev: "pass"}
|
||||||
end
|
end
|
||||||
|
|
||||||
{}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def control_has_all_tests_skipped(control)
|
def control_has_all_tests_skipped(control)
|
||||||
|
|
|
@ -56,15 +56,17 @@ module Inspec::Plugin::V2::PluginType
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_enhanced_outcomes(control_id)
|
def add_enhanced_outcomes(control_id)
|
||||||
enhanced_outcomes = {}
|
|
||||||
if control_has_error(@notifications[control_id])
|
if control_has_error(@notifications[control_id])
|
||||||
enhanced_outcomes = { name: "Error", abbrev: "ERR" }
|
{ name: "Error", abbrev: "ERR" }
|
||||||
elsif control_has_impact_zero(@notifications[control_id])
|
elsif control_has_impact_zero(@notifications[control_id])
|
||||||
enhanced_outcomes = { name: "Not Applicable", abbrev: "N/A" }
|
{ name: "Not Applicable", abbrev: "N/A" }
|
||||||
elsif control_has_all_tests_skipped(@notifications[control_id])
|
elsif control_has_all_tests_skipped(@notifications[control_id])
|
||||||
enhanced_outcomes = { name: "Not Reviewed", abbrev: "N/R" }
|
{ name: "Not Reviewed", abbrev: "N/R" }
|
||||||
|
elsif control_has_any_tests_failed(@notifications[control_id])
|
||||||
|
{ name: "Failed", abbrev: "fail" }
|
||||||
|
else
|
||||||
|
{ name: "Passed", abbrev: "pass" }
|
||||||
end
|
end
|
||||||
enhanced_outcomes
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def control_has_error(notifications)
|
def control_has_error(notifications)
|
||||||
|
@ -81,6 +83,13 @@ module Inspec::Plugin::V2::PluginType
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def control_has_any_tests_failed(notifications)
|
||||||
|
notifications.any? do |notification_data|
|
||||||
|
_notification, status = notification_data
|
||||||
|
status == "failed"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def control_has_impact_zero(notifications)
|
def control_has_impact_zero(notifications)
|
||||||
notification_data = notifications.first
|
notification_data = notifications.first
|
||||||
notification_impact = notification_data.first.example.metadata[:impact]
|
notification_impact = notification_data.first.example.metadata[:impact]
|
||||||
|
|
Loading…
Reference in a new issue