summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2013-11-07 23:36:37 +0100
committerAzul <azul@leap.se>2013-11-08 09:45:28 +0100
commita7cd2ef0877e79302f27fb175384a0cf4ded52d9 (patch)
tree95937da00aeeca34dac67ccd801bad2ad496455e
parente2c0962077cf759b23639276cca42606ea2135ec (diff)
fix cornercase of non expiring tokens
-rw-r--r--users/app/models/token.rb3
-rw-r--r--users/test/factories.rb4
-rw-r--r--users/test/unit/token_test.rb18
3 files changed, 15 insertions, 10 deletions
diff --git a/users/app/models/token.rb b/users/app/models/token.rb
index bf9b0d0..001eb40 100644
--- a/users/app/models/token.rb
+++ b/users/app/models/token.rb
@@ -20,7 +20,8 @@ class Token < CouchRest::Model::Base
end
def self.expired
- self.by_last_seen_at.endkey(expires_after.minutes.ago)
+ return [] unless expires_after
+ by_last_seen_at.endkey(expires_after.minutes.ago)
end
def self.destroy_all_expired
diff --git a/users/test/factories.rb b/users/test/factories.rb
index c87e290..f5fb77d 100644
--- a/users/test/factories.rb
+++ b/users/test/factories.rb
@@ -19,6 +19,8 @@ FactoryGirl.define do
end
end
- factory :token
+ factory :token do
+ user
+ end
end
diff --git a/users/test/unit/token_test.rb b/users/test/unit/token_test.rb
index 445a20c..6c9f209 100644
--- a/users/test/unit/token_test.rb
+++ b/users/test/unit/token_test.rb
@@ -7,9 +7,6 @@ class ClientCertificateTest < ActiveSupport::TestCase
@user = find_record :user
end
- teardown do
- end
-
test "new token for user" do
sample = Token.new(:user_id => @user.id)
assert sample.valid?
@@ -61,12 +58,17 @@ class ClientCertificateTest < ActiveSupport::TestCase
end
end
+ test "Token.destroy_all_expired is noop if no expiry is set" do
+ expired = FactoryGirl.create :token, last_seen_at: 2.hours.ago
+ with_config auth: {} do
+ Token.destroy_all_expired
+ end
+ assert_equal expired, Token.find(expired.id)
+ end
+
test "Token.destroy_all_expired cleans up expired tokens only" do
- expired = Token.new(user_id: @user.id)
- expired.last_seen_at = 2.hours.ago
- expired.save
- fresh = Token.new(user_id: @user.id)
- fresh.save
+ expired = FactoryGirl.create :token, last_seen_at: 2.hours.ago
+ fresh = FactoryGirl.create :token
with_config auth: {token_expires_after: 60} do
Token.destroy_all_expired
end