'rspec test failed for params
i'm new to rails , i'm tring to write spec test for controller method create and I can't figure out how to pass params users to get method. here is create method for project controller
def create
@project = Project.new(project_params)
@project.creator = current_user
byebug
if params[:project][:users].any?
byebug
params[:project][:users].reject!(&:empty?)
@project.enrolled_user = User.find( params[:project][:users])
end
byebug
authorize @project
respond_to do |format|
if @project.save
format.html { redirect_to @project, notice: 'Project was successfully
created.'}
format.json { render :show, status: :created, location: @project}
else
format.html { render :new}
format.json { render json: @project.errors, status: :unprocessable_entity}
end
end
end
project_spec.rb
context "post create" do
it "creates a new project" do
get :new
byebug
post :create,params: { user: user.id }
byebug
expect(project1.creator).to eq(user)
expect(enrolled_user.user_id).to eq(user1.id)
expect(response).to be_successful
end
end
terminal
1) ProjectsController post create creates a new project
Failure/Error: if params[:project][:users].any?
NoMethodError:
undefined method `[]' for nil:NilClass
# ./app/controllers/projects_controller.rb:38:in `create'
# ./spec/requests/project_spec.rb:49:in `block (3 levels) in <main>'
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
