1 एक सफलता की स्थिति कोड (2xx) की प्रतिक्रिया की उम्मीद थी लेकिन यह 401 था

पर बनाया गया सवाल Thu, Mar 28, 2019 12:00 AM

नियंत्रक में current_user मौजूद है और इसमें साइन इन है, लेकिन अनुरोध अनधिकृत है। ऐसा क्यों है?

module ControllerMacros

  def login_user
    before(:each) do
      @request.env["devise.mapping"] = Devise.mappings[:user]
      user = FactoryBot.create(:user, company: FactoryBot.create(:company))
      sign_in user
    end
  end

end

rspec_helper.rb:

require 'spec_helper'
require 'devise'
require 'support/controller_macros'

RSpec.configure do |config|
  config.include FactoryBot::Syntax::Methods
  config.include Devise::Test::ControllerHelpers, type: :controller
  config.extend ControllerMacros, type: :controller
end

उपयोगकर्ता परीक्षण:

require 'rails_helper'

RSpec.describe Api::V1::UsersController do
  include Devise::Test::ControllerHelpers

  describe "GET /api/v1/users" do
    login_user

    it "should get list of users" do
      get 'index'
      expect(response).to have_http_status(:success)
    end

  end
end

त्रुटि:

असफलता /त्रुटि: अपेक्षा (प्रतिक्रिया)। तक have_http_status (: सफलता)

यह परीक्षण ठीक चल रहा है और काम कर रहा है:

   it "should have a current_user" do
      expect(subject.current_user).to_not eq(nil)
    end

    it "should be signed in" do
      expect(subject.user_signed_in?).to be true
    end
    
0
1 उत्तर                              1                         

नीचे दिए गए कोड का प्रयास करें:

require 'rails_helper'

RSpec.describe Api::V1::UsersController do
  include Devise::Test::ControllerHelpers

  describe "GET /api/v1/users" do
    it "should get list of users" do
      login_user
      get 'index'
      expect(response).to have_http_status(:success)
    end

  end
end
    
1
2019-03-28 17: 56: 48Z
  1. login_user` एक उदाहरण (जैसे एक it ब्लॉक) के भीतर या उदाहरण के दायरे में चलने वाले निर्माणों (जैसे 06003509911001010350, 060035099111100100111110010011111001) से उपलब्ध नहीं है। यह केवल एक उदाहरण समूह पर उपलब्ध है (जैसे एक 0600350991100101035062 या before ब्लॉक)। लेकिन मुझे नहीं लगता कि यह एक समस्या है, मैं अपने प्रश्न
    को संपादित करूंगा
    2019-03-28 19: 57: 10Z
    let
स्रोत रखा गया यहाँ