class AllureRspec::SuiteLabels

Suite label generator

Attributes

example_group[R]

Public Class Methods

new(example_group) click to toggle source
# File lib/allure_rspec/suite_labels.rb, line 9
def initialize(example_group)
  @example_group = example_group
end

Public Instance Methods

fetch() click to toggle source

Get test suite labels @return [Array<Allure::Label>]

# File lib/allure_rspec/suite_labels.rb, line 15
def fetch
  parents = example_group.parent_groups.map do |group|
    group.description.empty? ? "Anonymous" : group.description
  end

  labels = []
  labels << Allure::ResultUtils.suite_label(suite(parents))
  labels << Allure::ResultUtils.parent_suite_label(parent_suite(parents)) if parent_suite(parents)
  labels << Allure::ResultUtils.sub_suite_label(sub_suites(parents)) if sub_suites(parents)

  labels
end

Private Instance Methods

parent_suite(parents) click to toggle source

@param [Array<String>] parents @return [String]

# File lib/allure_rspec/suite_labels.rb, line 40
def parent_suite(parents)
  parents.length > 1 ? parents.last : nil
end
sub_suites(parents) click to toggle source

@param [Array<String>] parents @return [String]

# File lib/allure_rspec/suite_labels.rb, line 46
def sub_suites(parents)
  parents.length > 2 ? parents[0..-3].join(" > ") : nil
end
suite(parents) click to toggle source

@param [Array<String>] parents @return [String]

# File lib/allure_rspec/suite_labels.rb, line 34
def suite(parents)
  parents.length == 1 ? parents.last : parents[-2]
end