34

When running legacy controller tests like this one:

    get :edit, id: object.id, format: :js

My tests began failing in Rails 4.1 with the following error:

ActionController::InvalidCrossOriginRequest: Security warning: an embedded <script> tag on another site requested protected JavaScript. If you know what you're doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding.
Tom Rossi
  • 11,604
  • 5
  • 65
  • 96

2 Answers2

51

For Rails 5+

get :edit, params: { id: object.id }, xhr: true
John Pollard
  • 3,729
  • 3
  • 24
  • 50
40

Older versions of Rails accepted this, but the solution was to use the xhr method as follows:

  xhr :get, :edit, id: object.id
Tom Rossi
  • 11,604
  • 5
  • 65
  • 96