Sha256: ae437d6d6a5cb5ecf4d29dc0ae2fb075c6481b21f7bb8e16ec79c4eb11c59519

Contents?: true

Size: 1.75 KB

Versions: 11

Compression:

Stored size: 1.75 KB

Contents

require "spec_helper"

describe "param groups" do

  it "lets reuse the params description in more actions" do
    user_create_desc = Apipie["users#create"].params[:user]
    user_create_params = user_create_desc.validator.hash_params_ordered.map(&:name)

    user_update_desc = Apipie["users#update"].params[:user]
    user_update_params = user_update_desc.validator.hash_params_ordered.map(&:name)

    common = user_update_params & user_create_params
    common.sort_by(&:to_s).should == user_update_params.sort_by(&:to_s)
  end

  it "allows using groups is nested param descriptions" do
    user_create_desc = Apipie["users#update"].params[:user]
    user_create_params = user_create_desc.validator.hash_params_ordered.map(&:name)
    user_create_params.map(&:to_s).sort.should == %w[membership name pass]
  end

  it "should allow adding additional params to group" do
    user_create_desc = Apipie["users#create"].params[:user]
    user_create_params = user_create_desc.validator.hash_params_ordered.map(&:name)
    user_create_params.map(&:to_s).sort.should == %w[membership name pass permalink]
  end

  context "hash param" do
    it "influences only its childs" do
      Apipie["users#create"].params[:user].required.should be true
      Apipie["users#update"].params[:user].required.should be true
    end
  end

  it "lets you reuse a group definition from different controller" do
    arch_v1_desc = Apipie["1.0#architectures#create"].params[:architecture]
    arch_v1_params = arch_v1_desc.validator.hash_params_ordered.map(&:name)

    arch_v2_desc = Apipie["2.0#architectures#create"].params[:architecture]
    arch_v2_params = arch_v2_desc.validator.hash_params_ordered.map(&:name)

    arch_v1_params.sort_by(&:to_s).should == arch_v2_params.sort_by(&:to_s)
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
apipie-rails-0.1.2 spec/lib/param_group_spec.rb
apipie-rails-0.1.1 spec/lib/param_group_spec.rb
apipie-rails-0.1.0 spec/lib/param_group_spec.rb
apipie-rails-0.0.24 spec/lib/param_group_spec.rb
apipie-rails-0.0.23 spec/lib/param_group_spec.rb
jmoses_apipie-rails-0.0.23 spec/lib/param_group_spec.rb
apipie-rails-0.0.22 spec/lib/param_group_spec.rb
apipie-rails-0.0.21 spec/lib/param_group_spec.rb
apipie-rails-0.0.20 spec/lib/param_group_spec.rb
apipie-rails-0.0.19 spec/lib/param_group_spec.rb
apipie-rails-0.0.18 spec/lib/param_group_spec.rb