Class: Reeve::Testing::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/reeve/testing/report.rb

Overview

The aggregate of one compliance run (FR-018).

to_s is written to be the whole output of a failing CI step: a one-line verdict followed by every failure in full. A report that has to be cross-referenced with something else is a report nobody reads at 3am.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(results) ⇒ Report

Returns a new instance of Report.



13
14
15
16
# File 'lib/reeve/testing/report.rb', line 13

def initialize(results)
  @results = results.freeze
  freeze
end

Instance Attribute Details

#resultsObject (readonly)

Returns the value of attribute results.



11
12
13
# File 'lib/reeve/testing/report.rb', line 11

def results
  @results
end

Instance Method Details

#failed?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/reeve/testing/report.rb', line 22

def failed?
  !passed?
end

#failuresObject



26
27
28
# File 'lib/reeve/testing/report.rb', line 26

def failures
  results.reject(&:passed?)
end

#inspectObject



42
43
44
# File 'lib/reeve/testing/report.rb', line 42

def inspect
  "#<Reeve::Testing::Report #{summary}>"
end

#passed?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/reeve/testing/report.rb', line 18

def passed?
  failures.empty?
end

#passesObject



30
31
32
# File 'lib/reeve/testing/report.rb', line 30

def passes
  results.select(&:passed?)
end

#sizeObject



34
35
36
# File 'lib/reeve/testing/report.rb', line 34

def size
  results.size
end

#to_sObject



38
39
40
# File 'lib/reeve/testing/report.rb', line 38

def to_s
  [summary, *failures.map { |result| detail(result) }].join("\n")
end