2016-06-07 4 views
0

Здравствуйте, так что я получаю эту ошибку, хотя я попробовал некоторые из решений размещены здесьне определен метод 'sign_in' для RSpec

спецификации/поддержка/devise.rb

RSpec.configure do |config| 
config.include Devise::Test::ControllerHelpers, type: :controller 
config.include Devise::Test::ControllerHelpers, type: :view 
end 

accounts_spec .rb

require "rails_helper" 

RSpec.describe Api::V1::AccountsController, :type => :controller do 
    describe "GET index no account" do 
    it "has a 403 status code" do 
     get :index 
     expect(response.status).to eq(403) 
    end 
    end 
    describe "GET index with account" do 
    it "has a 200 status code" do 
     sign_in @user 
     get :index 
     expect(response.status).to eq(200) 
    end 
    end 
end 

accounts_controller.rb

class Api::V1::AccountsController < ApplicationController 
    skip_before_action :verify_authenticity_token 

    def index 
     #show user details 
     raise if not current_user 
     render json: { :user => current_user.as_json(:except=>[:created_at, :updated_at, :authorization_token, :provider, :uid, :id])} 
     rescue 
     render nothing: true, status: 403 
    end 

Любые идеи? я заблокирован, первый тест для 403 работает, но тогда я просто не могу использовать sign_in для разработки ...

ответ

0

Похоже, что конфигурация не запускается. Убедитесь, что ваши spec/support/devise.rb включены что-то вроде

Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } 

в rails_helper.rb

или переместить эти config.include S в rails_helper сам

+0

Ничего из этого не было. .. но я действительно нашел проблему. опубликует его ниже –

0

Проблема была в devise.rb файлы. Правильные линии конфигурации были

config.include Devise::TestHelpers, type: :controller 
    config.include Devise::TestHelpers, type: :view 
0

Вы можете непосредственно использовать это в рельсах помощник

config.include Devise::TestHelpers, :type => :controller 

Чтобы использовать sign_in метод.

Смежные вопросы