summaryrefslogtreecommitdiff
path: root/test/unit/identity_test.rb
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2014-07-07 10:12:53 +0200
committerAzul <azul@leap.se>2014-07-12 09:14:23 +0200
commitcc1666d9832415058bf0b22bb5912e432261af4f (patch)
tree9dddf4d76fd7a9b1e5b2ab1d64ec6b6e65ccb551 /test/unit/identity_test.rb
parent0e9c41a286b49b5ce52abcf0e014668d0167bbae (diff)
Identity view cert_fingerprints_by_expiry
Also move complex identity views into js designs. Includes test. Here's how you would query it from outside rails: ``` $ curl 'localhost:5984/identities/_design/Identity/_view/cert_fingerprints_by_expiry?startkey="2014-07-05"' {"total_rows":4,"offset":1,"rows":[ {"id":"6c9091d4f13eaeaa6062c9d0528fd34d","key":"2014-07-05","value":"fingerprint"}, {"id":"6f3aa93828b4f6978d551f2623b9d103","key":"2014-07-05","value":"fingerprint"}, {"id":"b6cafacfa65042679691cd5065fb19e3","key":"2014-07-07","value":"fp"} ]} ``` Note that the expiry will be used as the key. So you should use the current data (or yesterday) as the startkey to get all fingerprints that have not expired yet. The fingerprint itself is in the value. No need to include docs.
Diffstat (limited to 'test/unit/identity_test.rb')
-rw-r--r--test/unit/identity_test.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/unit/identity_test.rb b/test/unit/identity_test.rb
index 49b2075..933b0ff 100644
--- a/test/unit/identity_test.rb
+++ b/test/unit/identity_test.rb
@@ -136,6 +136,22 @@ class IdentityTest < ActiveSupport::TestCase
assert_equal 0, Identity.disabled.count
end
+ test "store cert fingerprint" do
+ begin
+ id = Identity.for(@user)
+ cert = stub expiry: Time.now, fingerprint: "fp"
+ id.register_cert cert
+ id.save
+ entry = {cert.fingerprint => cert.expiry.to_date.to_s}
+ assert_equal entry, id.cert_fingerprints
+ row = Identity.cert_fingerprints_by_expiry.descending.rows.first
+ assert_equal row['key'], cert.expiry.to_date.to_s
+ assert_equal row['value'], cert.fingerprint
+ ensure
+ id.reload.destroy if id && id.persisted?
+ end
+ end
+
def alias_name
@alias_name ||= Faker::Internet.user_name
end