I have this controller:
class UsersController < ApplicationController
def enable_password_change
respond_to do |format|
format.js {
render :layout => false
}
end
end
end
And the following test:
test "should render js to show the change password form" do
sign_in_user
request_javascript
get : enable_password_change
assert_template : enable_password_change
assert_response :ok
end
And the helper method to set the request headers:
def request_javascript
@request.headers["Accepts"] = "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
end
However my test reports:
Finished tests in 0.942294s, 7.4287 tests/s, 15.9186 assertions/s.
1) Error:
UsersControllerTest#test_should_render_js_to_show_the_change_password_for:
ActionController::UnknownFormat: ActionController::UnknownFormat
app/controllers/users_controller.rb:9:in `enable_password_change'
test/controllers/users_controller_test.rb:14:in `block in <class:UsersControllerTest>
'
7 tests, 15 assertions, 0 failures, 1 errors, 0 skips
What am I doing wrong here?
P.S. Also posted on ruby on rails - Testing if a controller renders a JS Template - Stack Overflow