Sha256: f22502c1a7cf502a106b94372e24924da32f6ce241c0ba7eb4f21575518a20b8

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe Praxis::RequestStages::Validate do
  let(:dispatcher) { Praxis::Dispatcher.new }

  # Instances controller is defined in the 'app' folder and is already in scope. Using this
  # controller for the specs instead of creating a simple controller.
  let(:controller) { Instances }

  let(:action) { controller.definition.actions[:show] }

  let(:request) do
    env = Rack::MockRequest.env_for('/instances/1?cloud_id=1&api_version=1.0')
    env['rack.input'] = StringIO.new('something=given')
    env['HTTP_VERSION'] = 'HTTP/1.1'
    env['HTTP_HOST'] = 'rightscale'
    request = Praxis::Request.new(env)
    request.action = action
    request
  end

  context 'given a request' do
    it 'should validate params and headers from the request' do
      expect(request).to receive(:validate_headers)
      expect(request).to receive(:validate_params)
      dispatcher.dispatch(controller, action, request)
    end

    it 'should validate payload from the request' do
      expect(request).to receive(:validate_payload)
      dispatcher.dispatch(controller, action, request)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
praxis-0.10.1 spec/praxis/request_stages_validate_spec.rb
praxis-0.10.0 spec/praxis/request_stages_validate_spec.rb