Sha256: c7d58a695eaf5d12c94cd1f356ea902707f4f5d2154cd14eba3798ad03fbc175

Contents?: true

Size: 1.36 KB

Versions: 17

Compression:

Stored size: 1.36 KB

Contents

require 'rest-core/test'

describe RC::JsonRequest do
  app = RC::JsonRequest.new(RC::Dry.new, true)
  env = {RC::REQUEST_HEADERS => {}, RC::REQUEST_METHOD => :post}
  request_params = {
    'key' => 'value',
    'array' => [1, 2, 3],
    'nested' => {'k' => 'v', 'a' => [4, 5, 6]}
  }

  would 'encode payload as json' do
    e = env.merge(RC::REQUEST_METHOD  => :post,
                  RC::REQUEST_PAYLOAD => request_params)

    app.call(e){ |res|
      res.should.eq(
        RC::REQUEST_METHOD  => :post,
        RC::REQUEST_HEADERS => {'Content-Type' => 'application/json'},
        RC::REQUEST_PAYLOAD => RC::Json.encode(request_params))}
  end

  would 'encode false and nil' do
    [[nil, 'null'], [false, 'false'], [true, 'true']].each do |(value, exp)|
      [:post, :put, :patch].each do |meth|
        e = env.merge(RC::REQUEST_METHOD  => meth,
                      RC::REQUEST_PAYLOAD => value)
        app.call(e){ |res| res[RC::REQUEST_PAYLOAD].should.eq(exp) }
      end
    end
  end

  would 'do nothing for get, delete, head, options' do
    [:get, :delete, :head, :options].each do |meth|
      e = env.merge(RC::REQUEST_PAYLOAD => {}, RC::REQUEST_METHOD => meth)
      app.call(e){ |res| res.should.eq e }
    end
  end

  would 'do nothing if json_request is false' do
    a = RC::JsonRequest.new(RC::Dry.new, false)
    a.call(env){ |res| res.should.eq env }
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
rest-core-4.0.1 test/test_json_request.rb
rest-core-4.0.0 test/test_json_request.rb
rest-core-3.6.0 test/test_json_request.rb
rest-core-3.5.92 test/test_json_request.rb
rest-core-3.5.91 test/test_json_request.rb
rest-core-3.5.9 test/test_json_request.rb
rest-core-3.5.8 test/test_json_request.rb
rest-core-3.5.7 test/test_json_request.rb
rest-core-3.5.6 test/test_json_request.rb
rest-core-3.5.5 test/test_json_request.rb
rest-core-3.5.4 test/test_json_request.rb
rest-core-3.5.3 test/test_json_request.rb
rest-core-3.5.2 test/test_json_request.rb
rest-core-3.5.1 test/test_json_request.rb
rest-core-3.5.0 test/test_json_request.rb
rest-core-3.4.1 test/test_json_request.rb
rest-core-3.4.0 test/test_json_request.rb