Class: Skooma::Objects::Operation::Keywords::Responses

Inherits:
JSONSkooma::Keywords::Base
  • Object
show all
Defined in:
lib/skooma/objects/operation/keywords/responses.rb

Instance Method Summary collapse

Instance Method Details

#evaluate(instance, result) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/skooma/objects/operation/keywords/responses.rb', line 12

def evaluate(instance, result)
  response = instance["response"] || {}
  return result.discard unless response["status"]

  status = find_status(response)

  return result.failure("Status #{response["status"]} not found for #{instance["method"].upcase} #{instance["path"]}") unless status

  result.annotate(status)
  result.call(response["status"], status) do |status_result|
    json[status].evaluate(response, status_result)

    if status_result.passed?
      result.annotate(status)
    else
      result.failure("Res #{response["status"]} is invalid")
    end
  end
end