In Intermediate Rails Workshop we are using Monban gem to authentication. I’d like to write rspec test for DashboardsController to test method show:
class DashboardsController < ApplicationController
def show
@shout = Shout.new
@shouts = current_user.shouts
end
end
and my test
require ‘spec_helper’
describe DashboardsController do
describe 'GET #show' do
it 'assigns new shout instance to shout variable' do
user = create(:user)
sign_in(user)
get :show
expect(assigns(:shout)).to be_a_new(Shout)
end
it 'assigns all shouts of sign_in user to shouts variable' do
user = create(:user)
sign_in(user)
get :show
expect(assigns(:shouts)).to eq user.shouts
end
end
end
It obviously doesn’t work because sign_in method is undefined. So how can I log in user in rspec test with Monban?
Strange but today this test doesn’t work I get this error:
/Users/ograbek/.rvm/gems/ruby-1.9.3-p392@shouter/gems/monban-0.0.6/lib/monban/controller_helpers.rb:12:in `block in <module:ControllerHelpers>': undefined method `helper_method' for #<Class:0x007ff9b1c0ab40> (NoMethodError)
/home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/monban-0.0.7/lib/monban/controller_helpers.rb:12:in block in <module:ControllerHelpers>': undefined method helper_method’ for #Class:0x007f3e709cd208 (NoMethodError)
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/activesupport-4.0.0/lib/active_support/concern.rb:114:in class_eval' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/activesupport-4.0.0/lib/active_support/concern.rb:114:in append_features’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:860:in include' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:860:in safe_include’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:854:in block in configure_group' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:852:in each’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:852:in configure_group' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/world.rb:46:in configure_group’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/example_group.rb:302:in set_it_up' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/example_group.rb:245:in subclass’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/example_group.rb:232:in describe' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/dsl.rb:18:in describe’
from /opt/kyruus/providermatch_beta/spec/controllers/case_controller_spec.rb:3:in <top (required)>' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:896:in load’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:896:in block in load_spec_files' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:896:in each’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/configuration.rb:896:in load_spec_files' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/command_line.rb:22:in run’
from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/runner.rb:80:in run' from /home/vagrant/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.5/lib/rspec/core/runner.rb:17:in block in autorun’