-
-
Save austenito/2359120 to your computer and use it in GitHub Desktop.
describe "Shopping Cart Requests" do | |
let!(:user) { Fabricate(:user) } | |
before(:each) do | |
login_user_post("admin", "admin") | |
end | |
context "when I visit the shopping cart" do | |
it " show the logged in users' cart items " do | |
#Test stuff | |
end | |
end | |
end |
RSpec.configure do |config| | |
config.include Sorcery::TestHelpers::Rails | |
end | |
module Sorcery | |
module TestHelpers | |
module Rails | |
def login_user_post(user, password) | |
page.driver.post(user_sessions_url, { username: user, password: password}) | |
end | |
end | |
end | |
end |
Fabricator(:user, :class_name => "User") do | |
id { sequence } | |
username { "admin" } | |
password { "admin" } | |
display_name { "Admin Boom"} | |
admin { true } | |
email { "[email protected]" } | |
salt { "asdasdastr4325234324sdfds" } | |
crypted_password { Sorcery::CryptoProviders::BCrypt.encrypt("secret", | |
"asdasdastr4325234324sdfds") } | |
end |
What an amazing gist.
Thank you so much.
👍
I'm getting extremely frustrated with Capybara, Rspec, Factory_girl/Fabricator and Sorcery. I've been trying for 3 hours or so now to just log in a stupid user and nothing works. I found this gist and thought that my problems were solved, but no...they're not. I keep getting:
ActionController::RoutingError:
No route matches [POST] "/login"
Or:
NameError:
undefined local variable or method `login_path'
Depending on which I user for this:
def login_user_post(email, password)
page.driver.post(login_path, { email: email, password: password})
end
Same for new_session_path and anything else I put there. I just don't get it. Why is it so unbelievably difficult to get a user logged in with Sorcery? I built a little test site a couple weeks ago with Devise instead and it worked brilliant with no obnoxious hackery or any of this other stuff and if it wasn't going to be incredibly painful to switch over all user accounts to Devise, I would just do that.
@kkerley I'm having this exact same problem and I've wasted tons of time on this, does anyone know any hacks or ways around this?
This gist doesn't work for me either, I also either get ActionController::RoutingError:
No route matches [POST] "/login"
Or:
NameError:
undefined local variable or method `login_path'
Or:
NameError:
undefined local variable or method `page' for #<RSpec::ExampleGroups:
Did you guys ever figure this out?
I'm getting the undefined local variable or method
page' for ...` issue
@anlek : same error here.
Very nice, thanks for sharing. I might change the method name to
post_user_login
or simply,login_user
, since the login will always be aPOST
request anyway, but otherwise well done.