Class: Applitools::TestResults

Inherits:
Object
  • Object
show all
Defined in:
lib/applitools/core/test_results.rb

Defined Under Namespace

Classes: AccessibilityStatus

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(init_results = {}) ⇒ TestResults

Returns a new instance of TestResults.



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/applitools/core/test_results.rb', line 88

def initialize(init_results = {})
  environment = init_results[:environment] || {}
  @renderer = Applitools::Utils.deep_stringify_keys(Applitools::Utils.underscore_hash_keys(environment[:requested]))

  # Use allow querying as both with camel and snake cases
  @browser_info = JSON.parse(@renderer.to_json, object_class: FlexibleOpenStruct)

  @results = Applitools::Utils.deep_stringify_keys(init_results[:result] ? init_results[:result] : init_results)
  @original_results = results
  @steps = results.fetch('steps', 0)
  @matches = results.fetch('matches', 0)
  @mismatches = results.fetch('mismatches', 0)
  @missing = results.fetch('missing', 0)
  @status = results.fetch('status', 0)
  @is_new = results.fetch('isNew', nil)
  @url = results.fetch('url', nil)
end

Instance Attribute Details

#browser_infoObject (readonly)

Returns the value of attribute browser_info.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def browser_info
  @browser_info
end

#is_newObject

Returns the value of attribute is_new.



83
84
85
# File 'lib/applitools/core/test_results.rb', line 83

def is_new
  @is_new
end

#matchesObject (readonly)

Returns the value of attribute matches.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def matches
  @matches
end

#mismatchesObject (readonly)

Returns the value of attribute mismatches.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def mismatches
  @mismatches
end

#missingObject (readonly)

Returns the value of attribute missing.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def missing
  @missing
end

#original_resultsObject (readonly)

Returns the value of attribute original_results.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def original_results
  @original_results
end

#rendererObject (readonly)

Returns the value of attribute renderer.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def renderer
  @renderer
end

#resultsObject (readonly)

Returns the value of attribute results.



86
87
88
# File 'lib/applitools/core/test_results.rb', line 86

def results
  @results
end

#screenshotObject

Returns the value of attribute screenshot.



83
84
85
# File 'lib/applitools/core/test_results.rb', line 83

def screenshot
  @screenshot
end

#statusObject (readonly)

Returns the value of attribute status.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def status
  @status
end

#stepsObject (readonly)

Returns the value of attribute steps.



84
85
86
# File 'lib/applitools/core/test_results.rb', line 84

def steps
  @steps
end

#urlObject

Returns the value of attribute url.



83
84
85
# File 'lib/applitools/core/test_results.rb', line 83

def url
  @url
end

Instance Method Details

#==(other) ⇒ Object



166
167
168
169
170
171
172
173
174
175
# File 'lib/applitools/core/test_results.rb', line 166

def ==(other)
  if other.is_a? self.class
    result = true
    %w(is_new url steps matches mismatches missing).each do |field|
      result &&= send(field) == other.send(field)
    end
    return result if result
  end
  false
end

#[](index) ⇒ Object



106
107
108
# File 'lib/applitools/core/test_results.rb', line 106

def [](index)
  @results[index]
end

#aborted?Boolean

Returns:

  • (Boolean)


134
135
136
# File 'lib/applitools/core/test_results.rb', line 134

def aborted?
  original_results['isAborted'] || !errors.nil?
end

#api_session_urlObject



138
139
140
# File 'lib/applitools/core/test_results.rb', line 138

def api_session_url
  original_results['apiUrls']['session']
end

#app_nameObject



154
155
156
# File 'lib/applitools/core/test_results.rb', line 154

def app_name
  original_results['appName']
end

#different?Boolean

Returns:

  • (Boolean)


130
131
132
# File 'lib/applitools/core/test_results.rb', line 130

def different?
  original_results['isDifferent']
end

#errorsObject



150
151
152
# File 'lib/applitools/core/test_results.rb', line 150

def errors
  original_results['error']
end

#failed?Boolean

Returns:

  • (Boolean)


118
119
120
# File 'lib/applitools/core/test_results.rb', line 118

def failed?
  status == 'Failed'
end

#nameObject



146
147
148
# File 'lib/applitools/core/test_results.rb', line 146

def name
  original_results['name']
end

#new?Boolean

Returns:

  • (Boolean)


126
127
128
# File 'lib/applitools/core/test_results.rb', line 126

def new?
  original_results['isNew']
end

#passed?Boolean Also known as: is_passed, as_expected?

Returns:

  • (Boolean)


114
115
116
# File 'lib/applitools/core/test_results.rb', line 114

def passed?
  status == 'Passed'
end

#secret_tokenObject



142
143
144
# File 'lib/applitools/core/test_results.rb', line 142

def secret_token
  original_results['secretToken']
end

#session_accessibility_statusObject



162
163
164
# File 'lib/applitools/core/test_results.rb', line 162

def session_accessibility_status
  @accessibility_status ||= original_results['accessibilityStatus'] && AccessibilityStatus.new(original_results['accessibilityStatus'] || {})
end

#steps_infoObject



158
159
160
# File 'lib/applitools/core/test_results.rb', line 158

def steps_info
  original_results['stepsInfo']
end

#test_resultsObject



110
111
112
# File 'lib/applitools/core/test_results.rb', line 110

def test_results
  self
end

#to_s(advanced = false) ⇒ Object



181
182
183
184
185
186
187
188
189
# File 'lib/applitools/core/test_results.rb', line 181

def to_s(advanced = false)
  is_new_str = ''
  is_new_str = is_new ? 'New test' : 'Existing test' unless is_new.nil?

  return @original_results.to_yaml if advanced

  "#{is_new_str} [ steps: #{steps}, matches: #{matches}, mismatches: #{mismatches}, missing: #{missing} ], " \
    "URL: #{url}"
end

#unresolved?Boolean

Returns:

  • (Boolean)


122
123
124
# File 'lib/applitools/core/test_results.rb', line 122

def unresolved?
  status == 'Unresolved'
end