Class: TestOutputPresenter

Inherits:
Object
  • Object
show all
Defined in:
lib/test_output_presenter.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(test_results) ⇒ TestOutputPresenter

Returns a new instance of TestOutputPresenter.



12
13
14
15
# File 'lib/test_output_presenter.rb', line 12

def initialize(test_results)
  @test_results = test_results
  @tests = test_results.tests unless @test_results.compile_error?
end

Class Method Details

.parse(test_results) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/test_output_presenter.rb', line 2

def self.parse(test_results)
  parser = self.new(test_results)

  if test_results.compile_error?
    parser.parse_error
  else
    parser.parse
  end
end

Instance Method Details

#parseObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/test_output_presenter.rb', line 17

def parse
  output = ""

  output += dots_or_fs + "\n"
  if failures.count > 0
    output += blank_lines(3) + "\n"
    output += failed_tests + "\n"
  end
  output += blank_lines(2) + "\n"
  output += "#{@tests.count} tests ran, #{failures.count} red, #{passed.count} green"
  output += blank_lines(3)

  output
end

#parse_errorObject



32
33
34
35
36
37
38
39
# File 'lib/test_output_presenter.rb', line 32

def parse_error
  [
    "Unable to run tests, SML says:".red,
    "",
    "",
    @test_results.message,
  ].join("\n")
end