class PhpTestHook

Constants

FAILED_REGEXP
PASSED_REGEXP
TEST_NAME

Public Instance Methods

run!(request) click to toggle source
# File lib/test_hook.rb, line 6
def run!(request)
  result = request.result[:test]

  unless result.include? TEST_NAME
    return [mask_tempfile_references(result.strip), :errored]
  end

  [to_structured_result(result)]
end
to_structured_result(result) click to toggle source
# File lib/test_hook.rb, line 16
def to_structured_result(result)
  passed_tests = result.scan(PASSED_REGEXP).map { |it| to_passed_result it }
  failed_tests = result.scan(FAILED_REGEXP).map { |it| to_failed_result it }.uniq { |it| it.first }

  passed_tests.concat(failed_tests)
end

Private Instance Methods

mask_tempfile_references(string) click to toggle source
# File lib/test_hook.rb, line 36
def mask_tempfile_references(string)
  string.gsub /\/tmp\/tmp\.\w+/, 'solution.php'
end
to_failed_result(regexp_groups) click to toggle source
# File lib/test_hook.rb, line 29
def to_failed_result(regexp_groups)
  reason_lines = regexp_groups.last.split "\n"
  reason = reason_lines.take(reason_lines.count - 2).join "\n"

  [regexp_groups.first, 'failed', reason]
end
to_passed_result(regexp_groups) click to toggle source
# File lib/test_hook.rb, line 25
def to_passed_result(regexp_groups)
  [regexp_groups.first, 'passed', '']
end