Sha256: 594e368f09a97fdc4f3b4f4a90a8f5d4d85ce6a4254d3f701c5303eb99c7f0ec

Contents?: true

Size: 1.38 KB

Versions: 7

Compression:

Stored size: 1.38 KB

Contents

require "spec_helper"

describe Pliny::Helpers::Params do
  def app
    Sinatra.new do
      helpers Pliny::Helpers::Params
      post "/" do
        body_params.to_json
      end
    end
  end

  it "loads json params" do
    post "/", {hello: "world"}.to_json, {"CONTENT_TYPE" => "application/json"}
    assert_equal "{\"hello\":\"world\"}", last_response.body
  end

  it "loads json array of params" do
    post "/", [{hello: "world"}, {goodbye: "moon"}].to_json, {"CONTENT_TYPE" => "application/json"}
    assert_equal "[{\"hello\":\"world\"},{\"goodbye\":\"moon\"}]", last_response.body
  end

  it "loads json array of arrays of params" do
    post "/", [[{hello: "world"}], [{goodbye: "moon"}]].to_json, {"CONTENT_TYPE" => "application/json"}
    assert_equal "[[{\"hello\":\"world\"}],[{\"goodbye\":\"moon\"}]]", last_response.body
  end

  it "loads form data params" do
    post "/", {hello: "world"}
    assert_equal "{\"hello\":\"world\"}", last_response.body
  end

  it "loads from an unknown content type" do
    post "/", "<hello>world</hello>", {"CONTENT_TYPE" => "application/xml"}
    assert_equal "{}", last_response.body
  end

  it "should throw bad request when receiving invalid json via post" do
    err = assert_raises(Pliny::Errors::BadRequest) do
      post "/", "{\"foo\"}", {"CONTENT_TYPE" => "application/json"}
    end

    assert_match /unexpected token/, err.message
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pliny-1.2.0 spec/helpers/params_spec.rb
pliny-1.1.0 spec/helpers/params_spec.rb
pliny-1.0.0 spec/helpers/params_spec.rb
pliny-0.32.0 spec/helpers/params_spec.rb
pliny-0.31.0 spec/helpers/params_spec.rb
pliny-0.30.1 spec/helpers/params_spec.rb
pliny-0.30.0 spec/helpers/params_spec.rb