Class: Minitest::ProgressReporter

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

Constant Summary collapse

@@tests =

counts passed tests (more general than test names)

0

Instance Method Summary collapse

Instance Method Details

#record(result) ⇒ Object

modify test output



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/learneroo_gem.rb', line 9

def record(result)
      if options[:verbose]
io.print "%s#%s = %.2f s = " % [result.class, result.name, result.time]
      else
io.print "#{result.name} "
      end
      if result.result_code == '.'
puts '✔'
    @@tests += 1
  else
puts result.result_code
  end
  report_results(result, @@tests)
end

#report_results(result, score) ⇒ Object

report results when wrong or last one



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/learneroo_gem.rb', line 25

def report_results(result, score)
  api_token = ENV["API_TOKEN"]
  test_url = ENV["API_URL"]
  track_id = ENV["TRACK_ID"]

  test_number = result.name[5..6]
  if test_number == "58" #final test code
    puts "Congratulations on passing the tests!"
    passed_tests = true
  end

  if api_token && test_url && (result.result_code != '.' || passed_tests)
    puts "Reporting results..."
    require "net/http"
    params = {'test_number'=> score,
              'api_token' => api_token,
              'track_id' => track_id
            }
    begin
      res = Net::HTTP.post_form(URI.parse(test_url), params)
      if res.code == "200"
        puts "Results successfully submitted to #{test_url}"
      end
    rescue
      puts "Failed to submit results."
    end
  end
end