Rspec-rails: Rails 6 - ActionView::Template::Error: wrong number of arguments (given 2, expected 1)

Created on 16 Aug 2019  路  2Comments  路  Source: rspec/rspec-rails

What Ruby, Rails and RSpec versions are you using?

Ruby version: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
Rails version: 6.0.0
RSpec version: RSpec 3.8

  • rspec-core 3.8.2
  • rspec-expectations 3.8.4
  • rspec-mocks 3.8.1
  • rspec-rails 3.8.2
  • rspec-support 3.8.2

Observed behaviour

When upgrading from rails 5.2 to 6.0 this spec started failing

1) CollectionsController GET index renders the index template
     Failure/Error: get :index

     ActionView::Template::Error:
       wrong number of arguments (given 2, expected 1)
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rspec-rails-3.8.2/lib/rspec/rails/view_rendering.rb:105:in `call'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:315:in `compile'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:285:in `block (2 levels) in compile!'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:182:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:382:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:284:in `block in compile!'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:276:in `synchronize'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:276:in `compile!'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:184:in `block in render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `block in instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:386:in `instrument_render_template'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/template.rb:183:in `render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/template_renderer.rb:59:in `block (2 levels) in render_template'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/abstract_renderer.rb:89:in `block in instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `block in instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/abstract_renderer.rb:88:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/template_renderer.rb:58:in `block in render_template'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/template_renderer.rb:66:in `render_with_layout'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/template_renderer.rb:57:in `render_template'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/template_renderer.rb:13:in `render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/renderer/renderer.rb:29:in `render_to_object'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb:118:in `block in _render_template'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/base.rb:304:in `in_rendering_context'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb:117:in `_render_template'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/streaming.rb:219:in `_render_template'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb:103:in `render_to_body'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rendering.rb:52:in `render_to_body'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/renderers.rb:142:in `render_to_body'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/rendering.rb:25:in `render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rendering.rb:36:in `render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/benchmark.rb:14:in `block in ms'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/core_ext/benchmark.rb:14:in `ms'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:44:in `block in render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:85:in `cleanup_view_runtime'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activerecord-6.0.0/lib/active_record/railties/controller_runtime.rb:34:in `cleanup_view_runtime'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:43:in `render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/implicit_render.rb:35:in `default_render'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/basic_implicit_render.rb:6:in `block in send_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/basic_implicit_render.rb:6:in `tap'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:196:in `process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rendering.rb:30:in `process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/callbacks.rb:135:in `run_callbacks'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/callbacks.rb:41:in `process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/rescue.rb:22:in `process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `block in instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activesupport-6.0.0/lib/active_support/notifications.rb:180:in `instrument'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/activerecord-6.0.0/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/abstract_controller/base.rb:136:in `process'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionview-6.0.0/lib/action_view/rendering.rb:39:in `process'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/metal.rb:191:in `dispatch'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/test_case.rb:513:in `process'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/template_assertions.rb:61:in `process'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_controller/test_case.rb:392:in `get'
     # /Users/jcoyne85/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/rails-controller-testing-1.0.4/lib/rails/controller/testing/integration.rb:13:in `block (2 levels) in <module:Integration>'
     # ./spec/controllers/collections_controller_spec.rb:16:in `block (3 levels) in <top (required)>'

Expected behaviour

The test should pass.

Can you provide an example app?

https://github.com/sul-dlss/was-registrar-app/compare/failing-rspec

Most helpful comment

Try rspec-rails 4.0.0.beta2.

All 2 comments

Try rspec-rails 4.0.0.beta2.

@jasnow yep, that solves the problem. Thanks.

Was this page helpful?
0 / 5 - 0 ratings