Commit 5187e6a6 by cole bradley

change tabs back to 2 spaces to resemble original style

parent e17d84f4
...@@ -18,17 +18,17 @@ class FakeController < ActionController::Base ...@@ -18,17 +18,17 @@ class FakeController < ActionController::Base
render text: "new" render text: "new"
end end
def edit def edit
param! :book, Hash, required: true do |b| param! :book, Hash, required: true do |b|
b.param! :title, String, required: true b.param! :title, String, required: true
b.param! :author, Hash do |a| b.param! :author, Hash do |a|
a.param! :first_name, String, required: true a.param! :first_name, String, required: true
a.param! :last_name, String, required: true a.param! :last_name, String, required: true
a.param! :age, Integer, required: true a.param! :age, Integer, required: true
end end
b.param! :price, BigDecimal, required: true b.param! :price, BigDecimal, required: true
end
render text: :book
end end
render text: :book
end
end end
...@@ -11,51 +11,51 @@ describe FakeController, type: :controller do ...@@ -11,51 +11,51 @@ describe FakeController, type: :controller do
end end
describe "nested_hash" do describe "nested_hash" do
it "validates nested properties" do it "validates nested properties" do
params = { params = {
'book' => { 'book' => {
'title' => 'One Hundred Years of Solitude', 'title' => 'One Hundred Years of Solitude',
'author' => { 'author' => {
'first_name' => 'Garbriel Garcia', 'first_name' => 'Garbriel Garcia',
'last_name' => 'Marquez', 'last_name' => 'Marquez',
'age' => '70' 'age' => '70'
}, },
'price' => '$1,000.00' 'price' => '$1,000.00'
}} }}
get :edit, params get :edit, params
expect(controller.params[:book][:author][:age]).to eql 70 expect(controller.params[:book][:author][:age]).to eql 70
expect(controller.params[:book][:author][:age]).to be_kind_of Integer expect(controller.params[:book][:author][:age]).to be_kind_of Integer
expect(controller.params[:book][:price]).to eql 1000.0 expect(controller.params[:book][:price]).to eql 1000.0
expect(controller.params[:book][:price]).to be_instance_of BigDecimal expect(controller.params[:book][:price]).to be_instance_of BigDecimal
end end
it "raises error when required nested attribute missing" do it "raises error when required nested attribute missing" do
params = { params = {
'book' => { 'book' => {
'title' => 'One Hundred Years of Solitude', 'title' => 'One Hundred Years of Solitude',
'author' => { 'author' => {
'last_name' => 'Marquez', 'last_name' => 'Marquez',
'age' => '70' 'age' => '70'
}, },
'price' => '$1,000.00' 'price' => '$1,000.00'
}} }}
expect { get :edit, params }.to raise_error { |error| expect { get :edit, params }.to raise_error { |error|
expect(error).to be_a(RailsParam::Param::InvalidParameterError) expect(error).to be_a(RailsParam::Param::InvalidParameterError)
expect(error.param).to eql("first_name") expect(error.param).to eql("first_name")
expect(error.options).to eql({ :required => true }) expect(error.options).to eql({:required => true})
} }
end end
it "passes when hash that's not required but has required attributes is missing" do it "passes when hash that's not required but has required attributes is missing" do
params = { params = {
'book' => { 'book' => {
'title' => 'One Hundred Years of Solitude', 'title' => 'One Hundred Years of Solitude',
'price' => '$1,000.00' 'price' => '$1,000.00'
}} }}
get :edit, params get :edit, params
expect(controller.params[:book][:price]).to eql 1000.0 expect(controller.params[:book][:price]).to eql 1000.0
expect(controller.params[:book][:price]).to be_instance_of BigDecimal expect(controller.params[:book][:price]).to be_instance_of BigDecimal
end end
end end
describe "InvalidParameterError" do describe "InvalidParameterError" do
...@@ -63,7 +63,7 @@ describe FakeController, type: :controller do ...@@ -63,7 +63,7 @@ describe FakeController, type: :controller do
expect { get :index, sort: "foo" }.to raise_error { |error| expect { get :index, sort: "foo" }.to raise_error { |error|
expect(error).to be_a(RailsParam::Param::InvalidParameterError) expect(error).to be_a(RailsParam::Param::InvalidParameterError)
expect(error.param).to eql("sort") expect(error.param).to eql("sort")
expect(error.options).to eql({ :in => ["asc", "desc"], :default => "asc", :transform => :downcase }) expect(error.options).to eql({:in => ["asc", "desc"], :default => "asc", :transform => :downcase})
} }
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment