Ich verwende devise_auth_token, um Benutzer für eine API zu authentifizieren. Ich möchte die Benutzer authentifizieren, bevor jeder Test ausgeführt wird, aber immer einen Fehler 401 erhalten. Wenn ich Postman für den Endpunkt mit den richtigen Headern verwende, funktioniert es, funktioniert aber nicht während der Tests.RSpec: Authentifizierung vor dem Test mit devise_auth_token
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
Können Sie 'sign_in @ user' in' before (: each) 'block nicht verwenden? –