Class: RSpec::FlakeClassifier::Rerun::Investigation

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/flake/classifier/rerun/result.rb,
sig/rspec/flake/classifier.rbs

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(example_id:, status:, order_type:, runs:, dependency_examples: [], dependency_role: nil) ⇒ Investigation

Returns a new instance of Investigation.



41
42
43
44
45
46
47
48
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 41

def initialize(example_id:, status:, order_type:, runs:, dependency_examples: [], dependency_role: nil)
  @example_id = example_id
  @status = status.to_s
  @order_type = order_type&.to_s
  @runs = runs
  @dependency_examples = dependency_examples
  @dependency_role = dependency_role&.to_s
end

Instance Attribute Details

#dependency_examplesArray[String] (readonly)

Returns the value of attribute dependency_examples.

Returns:

  • (Array[String])


38
39
40
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 38

def dependency_examples
  @dependency_examples
end

#dependency_roleString? (readonly)

Returns the value of attribute dependency_role.

Returns:

  • (String, nil)


38
39
40
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 38

def dependency_role
  @dependency_role
end

#example_idString (readonly)

Returns the value of attribute example_id.

Returns:

  • (String)


38
39
40
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 38

def example_id
  @example_id
end

#order_typeString? (readonly)

Returns the value of attribute order_type.

Returns:

  • (String, nil)


38
39
40
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 38

def order_type
  @order_type
end

#runsArray[untyped] (readonly)

Returns the value of attribute runs.

Returns:

  • (Array[untyped])


38
39
40
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 38

def runs
  @runs
end

#statusString (readonly)

Returns the value of attribute status.

Returns:

  • (String)


38
39
40
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 38

def status
  @status
end

Instance Method Details

#flaky?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 50

def flaky?
  status == "flaky"
end

#labelsArray[String]

Returns:

  • (Array[String])


58
59
60
61
62
63
64
65
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 58

def labels
  labels = []
  labels << "flaky" if flaky?
  labels << "order-dependent" if order_type == "od"
  labels << "non-order-dependent" if order_type == "nod"
  labels << dependency_role if dependency_role
  labels
end

#to_hHash[String, untyped]

Returns:

  • (Hash[String, untyped])


67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 67

def to_h
  {
    "example_id" => example_id,
    "status" => status,
    "order_type" => order_type,
    "dependency_role" => dependency_role,
    "labels" => labels,
    "dependency_examples" => dependency_examples,
    "polluter_candidates" => dependency_role == "victim" ? dependency_examples : [],
    "runs" => runs.map(&:to_h)
  }
end

#true_failure?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/rspec/flake/classifier/rerun/result.rb', line 54

def true_failure?
  status == "true_failure"
end