Sha256: 0993f1a7b946ac44f1dce283ae60cce022e092693f51168b37dfaf5cd987cb73
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
require 'json' module Fdoc module SpecWatcher VERBS = [:get, :post, :put, :patch, :delete] VERBS.each do |verb| define_method(verb) do |*params| action, request_params = params super(*params) check_response(verb, request_params) if path end end private def check_response(verb, request_params) successful = Fdoc.decide_success(response_params, real_response.status) Service.verify!(verb, path, parsed_request_params(request_params), response_params, real_response.status, successful) end def parsed_request_params request_params if request_params.kind_of?(Hash) request_params else begin JSON.parse(request_params) rescue {} end end end def path if respond_to?(:example) # Rspec 2 example.metadata[:fdoc] else # Rspec 1.3.2 opts = {} __send__(:example_group_hierarchy).each do |example| opts.merge!(example.options) end opts.merge!(options) opts[:fdoc] end end def real_response if respond_to? :response # we are on rails response else # we are on sinatra last_response end end def response_params begin JSON.parse(real_response.body) rescue {} end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fdoc-0.3.2 | lib/fdoc/spec_watcher.rb |