class HtmlTestHook

Public Class Methods

new(config = nil) click to toggle source
Calls superclass method
# File lib/test_hook.rb, line 5
def initialize(config = nil)
  super config
  @dom_hook = HtmlTestDomHook.new
  @script_hook = HtmlTestScriptHook.new
end

Public Instance Methods

compile(request) click to toggle source
# File lib/test_hook.rb, line 11
def compile(request)
  request = struct request.to_h.merge options: options(request)
  @script_hook.compile @dom_hook.compile(request)
end
run!(request) click to toggle source
# File lib/test_hook.rb, line 16
def run!(request)
  dom_output, dom_status = @dom_hook.run! request
  script_results = @script_hook.run!(request)
  script_test_results = script_results&.first
  return ["<pre>#{script_test_results}</pre>", :errored] if script_results&.last&.errored?

  if script_test_results.blank?
    [dom_output, dom_status]
  else
    [script_test_results, dom_output, dom_status]
  end
end

Private Instance Methods

options(request) click to toggle source
# File lib/test_hook.rb, line 31
def options(request)
  return {} unless request.test.is_a?(Hash)

  options_yaml = request.test['options']
  return {} if options_yaml.blank?

  YAML.load(options_yaml)
end