Commit 37a4cf2

mo <mo@mokhan.ca>
2019-05-29 02:22:36
naive less than equals and greather than equals
1 parent 9a72aee
Changed files (2)
app
models
spec
app/models/scim/visitor.rb
@@ -19,10 +19,18 @@ module Scim
         value = tree[:value].to_s[1..-2]
         value = DateTime.parse(value)
         User.where("#{attr} > ?", value)
+      when 'ge'
+        value = tree[:value].to_s[1..-2]
+        value = DateTime.parse(value)
+        User.where("#{attr} >= ?", value)
       when 'lt'
         value = tree[:value].to_s[1..-2]
         value = DateTime.parse(value)
         User.where("#{attr} < ?", value)
+      when 'le'
+        value = tree[:value].to_s[1..-2]
+        value = DateTime.parse(value)
+        User.where("#{attr} <= ?", value)
       else
         User.none
       end
spec/models/user_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe User do
     end
 
     specify do
-      results = User.scim_filter_for(tree_for("userName co \"#{random_user.email[1..3]}\""))
+      results = User.scim_filter_for(tree_for("userName co \"#{random_user.email[1..-2]}\""))
       expect(results).to match_array([random_user])
     end
 
@@ -53,6 +53,14 @@ RSpec.describe User do
       expect(results).to match_array([random_user])
     end
 
+    specify do
+      freeze_time
+      random_user.update!(updated_at: 10.minutes.from_now)
+
+      results = User.scim_filter_for(tree_for("meta.lastModified ge \"#{random_user.updated_at.iso8601}\""))
+      expect(results).to match_array([random_user])
+    end
+
     specify do
       freeze_time
       random_user.update!(updated_at: 10.minutes.from_now)
@@ -61,6 +69,14 @@ RSpec.describe User do
       expect(results).to match_array(users - [random_user])
     end
 
+    specify do
+      freeze_time
+      random_user.update!(updated_at: 10.minutes.ago)
+
+      results = User.scim_filter_for(tree_for("meta.lastModified le \"#{random_user.updated_at.iso8601}\""))
+      expect(results).to match_array([random_user])
+    end
+
     specify do
       first_user = users.sample
       second_user = users.sample