Sha256: 077a9356cec26357ada9c9dc6bb9abb8227760a12bdae341d514f5e03be64eb2

Contents?: true

Size: 1.87 KB

Versions: 2

Compression:

Stored size: 1.87 KB

Contents

require 'spec_helper'

describe Grape::Validations::DefaultValidator do

  module ValidationsSpec
    module DefaultValidatorSpec
      class API < Grape::API
        default_format :json

        params do
          optional :id
          optional :type, :default => 'default-type'
        end
        get '/' do
          { :id => params[:id], :type => params[:type] }
        end

        params do
          optional :type1, :default => 'default-type1'
          optional :type2, :default => 'default-type2'
        end
        get '/user' do
          { :type1 => params[:type1], :type2 => params[:type2] }
        end

        params do
          requires :id
          optional :type1, :default => 'default-type1'
          optional :type2, :default => 'default-type2'
        end

        get '/message' do
          { :id => params[:id], :type1 => params[:type1], :type2 => params[:type2] }
        end
      end
    end
  end

  def app
    ValidationsSpec::DefaultValidatorSpec::API
  end

  it 'set default value for optional param' do
    get("/")
    last_response.status.should == 200
    last_response.body.should == { :id => nil, :type => 'default-type' }.to_json
  end

  it 'set default values for optional params' do
    get("/user")
    last_response.status.should == 200
    last_response.body.should == { :type1 => 'default-type1', :type2 => 'default-type2' }.to_json
  end

  it 'set default values for missing params in the request' do
    get("/user?type2=value2")
    last_response.status.should == 200
    last_response.body.should == { :type1 => 'default-type1', :type2 => 'value2' }.to_json
  end

  it 'set default values for optional params and allow to use required fields in the same time' do
    get("/message?id=1")
    last_response.status.should == 200
    last_response.body.should == { :id => '1', :type1 => 'default-type1', :type2 => 'default-type2' }.to_json
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grape-0.6.0 spec/grape/validations/default_spec.rb
grape-0.5.0 spec/grape/validations/default_spec.rb