Rspec, тестирование контроллера Devise - PullRequest
0 голосов
/ 09 сентября 2018

Я настраиваю Rspec для проверки моих контроллеров. Я не могу заставить expects(assigns(:widgets)).to match_array([widget1, widget2]) пройти. Это продолжает бросать got: nil.

Я проверил, и widget1 и widget2 нормально загружаются в Fabricator. Я также проверил, что пользователь существует и имеет права администратора. Это просто не назначение их в коллекцию.

describe "GET index" do
  it "returns widgets" do
    login_admin
    widget1 = Fabricate(:widget)
    widget2 = Fabricate(:widget)
    get :index
    expect(assigns(:widgets)).to match_array([widget1, widget2])
  end
end

макрос для пользователя Devise /spec/support/macros.rb

def login_admin
  @request.env["devise.mapping"] = Devise.mappings[:user]
  user =  Fabricate(:user, admin: true)
  sign_in user
end

def login_user
  @request.env["devise.mapping"] = Devise.mappings[:user]
  user = Fabricate(:user)
  sign_in user
end

user_fabricator.rb

Fabricator(:user) do
  first_name Faker::Name.first_name
  last_name Faker::Name.last_name
  email Faker::Internet.email
  password Faker::Internet.password
  confirmed_at DateTime.now
  admin false
end

Почему виджеты не назначаются?

Изменился ли синтаксис?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...