Sha256: 7e63d1fe5fe291850ff60d18175530e0cf23f7c7cfaaa4b729084468a36679d5

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

require "active_support/concern"
require "serial_spec/version"
require "serial_spec/it_expects"
require "serial_spec/parsed_body"
require "serial_spec/request_response"
require "inheritable_accessors"

module SerialSpec
  extend ActiveSupport::Concern
  include ItExpects
  include RequestResponse
  include RequestResponse::Helpers
  SERIAL_VALID_VERBS = %w{GET POST PUT PATCH DELETE OPTIONS HEAD}

  module ClassMethods

    def with_request(request_str, params={}, envs={}, &block)
      if request_str.split(/\s+/).count == 2
        request_method_string, request_path_str = request_str.split(/\s+/)
      end

      context_klass = context "with request: '#{request_str}'" do
        if request_str.split(/\s+/).count == 2
          request_method_string, request_path_str = request_str.split(/\s+/)
          if SERIAL_VALID_VERBS.include?(request_method_string)
            request_method request_method_string
            request_path   request_path_str
          end
        end

        instance_exec(&block) if block_given?

        it "should match all examples: #{__inherited_expectations__.keys}" do
          perform_request!
        end

      end

    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
serial-spec-0.2.0 lib/serial_spec.rb
serial-spec-0.1.1 lib/serial_spec.rb