Commit 30c8008c

mo khan <mo@mokhan.ca>
2014-08-15 04:24:21
add specs for authenticate.
1 parent c570915
Changed files (2)
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