Arnold Roa
Arnold Roa

Reputation: 7748

rspec controller test, get with multiple parameters

I want to test to a controller that works on browser and looks like this

http://url.dev/jobs/1445.json?project_id=1144&accesskey=MyString

this is what i have on my controler spec file:

params = {:id=>"1445", :project_id=>1144, :accesskey=>"MyString"}
get :show, params, format: :json

On the log i see:

Processing by JobsController#show as HTML
    Parameters: {"id"=>"1440"}

Why it is trying to process as HTML and not as JSON? Why it only receives the id parameter?

Also, if I do this:

get :show, id: params[:id], format: :json

It tries to process using JSON but it dont works because I need the other params.

Upvotes: 8

Views: 15918

Answers (2)

Arnold Roa
Arnold Roa

Reputation: 7748

The format: :json part must be on the 2nd argument.

This works pretty well

params = {:id=>"1445", :project_id=>1144, :accesskey=>"MyString", format: :json}
get :show, params

Upvotes: 13

nowk
nowk

Reputation: 33191

get only takes 2 arguments, the "action" and "args"

Your code:

get :show, params, format: :json

Is passing in 3

Upvotes: -2

Related Questions