Я использую devise_auth_token для аутентификации пользователей для API. Я хотел бы аутентифицировать пользователей перед каждым тестом, но продолжайте получать ошибку 401. Когда я использую postman для конечной точки с правильными заголовками, он работает, но не работает во время тестов.
before(:each) do
@user = FactoryGirl.create(:user)
end
def get_auth
headers = @user.create_new_auth_token
auth = Hash.new
auth["client"] = headers["client"]
auth["access-token"] = headers["access-token"]
auth["uid"] = headers["uid"]
auth["expiry"] = headers["expiry"]
return auth
end
it "auth user should return success" do
get 'get_tasks_for_user', params: {uid: @user.uid}, headers: get_auth
expect(response).to have_http_status(200)
end
RSpec
TasksController auth user should return success
Failure/Error: expect(response).to have_http_status 200
expected the response to have status code 200 but it was 401
Можно использовать вспомогательный метод
Убедитесь, что у вас есть следующая запись в
/spec/rails_helper
Вы можете использовать
subdomain_login
в своих тестах. Вот пример Rspec.