Sha256: 35ff246cb6ed310c22a07d7528aaf51f2e5dc036ef1144363afb712e5826137b

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

require 'spec_helper'

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

  # 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(:env) do
    e = Rack::MockRequest.env_for('/instances/1?cloud_id=1&api_version=1.0')
    e['rack.input'] = StringIO.new('something=given')
    e['HTTP_VERSION'] = 'HTTP/1.1'
    e['HTTP_HOST'] = 'rightscale'
    e
  end

  let(:request) do
    r = Praxis::Request.new(env)
    r.route_params = {id: 1}
    r.action = action
    r
  end

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

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
praxis-0.22.pre.2 spec/praxis/request_stages/validate_spec.rb
praxis-0.22.pre.1 spec/praxis/request_stages/validate_spec.rb