Module: Ace::TestRunner::Atoms::ReportDirectoryResolver

Defined in:
lib/ace/test_runner/atoms/report_directory_resolver.rb

Overview

Resolves canonical test report directories.

Constant Summary collapse

DEFAULT_REPORT_ROOT =
".ace-local/test/reports"

Class Method Summary collapse

Class Method Details

.infer_package_name(package_dir:, test_files:, cwd:) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/ace/test_runner/atoms/report_directory_resolver.rb', line 25

def infer_package_name(package_dir:, test_files:, cwd:)
  if package_dir && !package_dir.to_s.empty?
    return File.basename(File.expand_path(package_dir))
  end

  first = Array(test_files).first
  if first && (match = first.match(%r{\A(.+?)/test/}))
    return File.basename(match[1])
  end

  File.basename(File.expand_path(cwd))
end

.resolve_package_report_dir(report_root:, package_name:) ⇒ Object



42
43
44
# File 'lib/ace/test_runner/atoms/report_directory_resolver.rb', line 42

def resolve_package_report_dir(report_root:, package_name:)
  File.join(report_root, short_package_name(package_name))
end

.resolve_report_root(raw_report_dir, explicit_cli_override:, start_path:) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/ace/test_runner/atoms/report_directory_resolver.rb', line 14

def resolve_report_root(raw_report_dir, explicit_cli_override:, start_path:)
  root = raw_report_dir.to_s.strip
  root = DEFAULT_REPORT_ROOT if root.empty?

  return File.expand_path(root, start_path) if explicit_cli_override

  project_root = Ace::Support::Config.find_project_root(start_path: start_path)
  base = project_root || start_path
  File.expand_path(root, base)
end

.short_package_name(package_name) ⇒ Object



38
39
40
# File 'lib/ace/test_runner/atoms/report_directory_resolver.rb', line 38

def short_package_name(package_name)
  package_name.to_s.sub(/\Aace-/, "")
end