require'spec_helper'# This spec was generated by rspec-rails when you ran the scaffold generator.# It demonstrates how one might use RSpec to specify the controller code that# was generated by Rails when you ran the scaffold generator.## It assumes that the implementation code is generated by the rails scaffold# generator. If you are using any extension libraries to generate different# controller code, this generated spec may or may not pass.## It only uses APIs available in rails and/or rspec-rails. There are a number# of tools you can use to make these specs even more expressive, but we're# sticking to rails and rspec-rails APIs to keep things simple and stable.## Compared to earlier versions of this generator, there is very limited use of# stubs and message expectations in this spec. Stubs are only used when there# is no simpler way to get a handle on the object needed for the example.# Message expectations are only used when there is no simpler way to specify# that an instance is receiving a specific message.<% module_namespacing do-%>
describe <%= controller_class_name %>Controllerdo# This should return the minimal set of attributes required to create a valid# <%= class_name %>. As you add validations to <%= class_name %>, be sure to# update the return value of this method accordingly.defvalid_attributes<%= formatted_hash(example_valid_attributes) %>
end
# This should return the minimal set of values that should be in the session
# in order to pass any filters (e.g. authentication) defined in
# <%=controller_class_name%>Controller. Be sure to keep this updated too.
def valid_session
{}
end
<% unless options[:singleton] -%>describe"GET index"doit"assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>"do<%= file_name %> =<%= class_name %>.create! valid_attributes
get :index, {}, valid_session
assigns(:<%=table_name%>).should eq([<%= file_name %>])endend<% end -%>
describe "GET show" do
it "assigns the requested <%= ns_file_name %>as@<%= ns_file_name %>" do
<%=file_name%> = <%= class_name %>.create!valid_attributesget:show,{:id=><%= file_name %>.to_param}, valid_session
assigns(:<%=ns_file_name%>).should eq(<%= file_name %>)endenddescribe"GET new"doit"assigns a new <%= ns_file_name %> as @<%= ns_file_name %>"doget:new,{},valid_sessionassigns(:<%=ns_file_name%>).should be_a_new(<%= class_name %>)endenddescribe"GET edit"doit"assigns the requested <%= ns_file_name %> as @<%= ns_file_name %>"do<%= file_name %> =<%= class_name %>.create! valid_attributes
get :edit, {:id =><%= file_name %>.to_param}, valid_session
assigns(:<%=ns_file_name%>).should eq(<%= file_name %>)endenddescribe"POST create"dodescribe"with valid params"doit"creates a new <%= class_name %>"doexpect{post:create,{:<%=ns_file_name%> =>valid_attributes},valid_session}.tochange(<%= class_name %>, :count).by(1)
end
it "assigns a newly created <%=ns_file_name%> as @<%= ns_file_name %>" do
post :create, {:<%= ns_file_name %> => valid_attributes}, valid_session
assigns(:<%= ns_file_name %>).should be_a(<%= class_name %>)
assigns(:<%= ns_file_name %>).should be_persisted
end
it "redirectstothecreated<%= ns_file_name %>" do
post :create, {:<%=ns_file_name%> =>valid_attributes},valid_sessionresponse.shouldredirect_to(<%= class_name %>.last)
end
end
describe "with invalid params" do
it "assigns a newly created but unsaved <%=ns_file_name%> as @<%= ns_file_name %>" do
# Trigger the behavior that occurs when invalid params are submitted
<%= class_name %>.any_instance.stub(:save).and_return(false)
post :create, {:<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
assigns(:<%= ns_file_name %>).should be_a_new(<%= class_name %>)
end
it "re-rendersthe'new'template" do
# Trigger the behavior that occurs when invalid params are submitted
<%= class_name %>.any_instance.stub(:save).and_return(false)
post :create, {:<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
response.should render_template("new")
end
end
end
describe "PUTupdate" do
describe "withvalidparams" do
it "updatestherequested<%= ns_file_name %>" do
<%=file_name%> = <%= class_name %>.create!valid_attributes# Assuming there are no other <%= table_name %> in the database, this# specifies that the <%= class_name %> created on the previous line# receives the :update_attributes message with whatever params are# submitted in the request.<%- if Rails.version >= '4' -%>
<%= class_name %>.any_instance.should_receive(:update).with(<%= formatted_hash(example_params_for_update) %>)
<%- else -%>
<%=class_name%>.any_instance.should_receive(:update_attributes).with(<%= formatted_hash(example_params_for_update) %>)<%- end -%>
put :update, {:id =><%= file_name %>.to_param, :<%=ns_file_name%> =><%= formatted_hash(example_params_for_update) %>}, valid_session
end
it "assigns the requested <%=ns_file_name%> as @<%= ns_file_name %>" do
<%= file_name %> = <%= class_name %>.create! valid_attributes
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => valid_attributes}, valid_session
assigns(:<%= ns_file_name %>).should eq(<%= file_name %>)
end
it "redirectstothe<%= ns_file_name %>" do
<%=file_name%> = <%= class_name %>.create!valid_attributesput:update,{:id=><%= file_name %>.to_param, :<%=ns_file_name%> =>valid_attributes},valid_sessionresponse.shouldredirect_to(<%= file_name %>)
end
end
describe "with invalid params" do
it "assigns the <%=ns_file_name%> as @<%= ns_file_name %>" do
<%= file_name %> = <%= class_name %>.create! valid_attributes
# Trigger the behavior that occurs when invalid params are submitted
<%= class_name %>.any_instance.stub(:save).and_return(false)
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
assigns(:<%= ns_file_name %>).should eq(<%= file_name %>)
end
it "re-rendersthe'edit'template" do
<%= file_name %> = <%= class_name %>.create! valid_attributes
# Trigger the behavior that occurs when invalid params are submitted
<%= class_name %>.any_instance.stub(:save).and_return(false)
put :update, {:id => <%= file_name %>.to_param, :<%= ns_file_name %> => <%= formatted_hash(example_invalid_attributes) %>}, valid_session
response.should render_template("edit")
end
end
end
describe "DELETEdestroy" do
it "destroystherequested<%= ns_file_name %>" do
<%=file_name%> = <%= class_name %>.create!valid_attributesexpect{delete:destroy,{:id=><%= file_name %>.to_param}, valid_session
}.to change(<%=class_name%>, :count).by(-1)
end
it "redirects to the <%= table_name %>list" do
<%= file_name %> = <%= class_name %>.create! valid_attributes
delete :destroy, {:id => <%= file_name %>.to_param}, valid_session
response.should redirect_to(<%= index_helper %>_url)
end
end
end
<% end -%>