Commit 30c8008c
Changed files (2)
app
models
spec
models
app/models/user_session.rb
@@ -24,15 +24,15 @@ class UserSession < ActiveRecord::Base
end
end
- private
-
- def set_unique_key
- self.key = SecureRandom.urlsafe_base64(32)
- end
-
class << self
def authenticate(key)
self.active.find_by(key: key)
end
end
+
+ private
+
+ def set_unique_key
+ self.key = SecureRandom.urlsafe_base64(32)
+ end
end
spec/models/user_session_spec.rb
@@ -50,4 +50,16 @@ describe UserSession do
expect(UserSession.active).to_not include(revoked_session)
end
end
+
+ describe ".authenticate" do
+ let!(:active_session) { create(:user_session, accessed_at: Time.now) }
+
+ it "returns the session if the key is active" do
+ expect(UserSession.authenticate(active_session.key)).to eql(active_session)
+ end
+
+ it "return nil if the key is not active" do
+ expect(UserSession.authenticate('blah')).to be_nil
+ end
+ end
end