diff options
| -rw-r--r-- | users/app/models/identity.rb | 17 | ||||
| -rw-r--r-- | users/test/unit/account_test.rb | 4 | ||||
| -rw-r--r-- | users/test/unit/identity_test.rb | 11 | 
3 files changed, 31 insertions, 1 deletions
| diff --git a/users/app/models/identity.rb b/users/app/models/identity.rb index 40ce4ae..97966d0 100644 --- a/users/app/models/identity.rb +++ b/users/app/models/identity.rb @@ -27,6 +27,17 @@ class Identity < CouchRest::Model::Base          emit(doc.address, doc.keys["pgp"]);        }      EOJS +    view :disabled, +      map: <<-EOJS +      function(doc) { +        if (doc.type != 'Identity') { +          return; +        } +        if (typeof doc.user_id === "undefined") { +          emit(doc._id, 1); +        } +      } +    EOJS    end @@ -57,6 +68,12 @@ class Identity < CouchRest::Model::Base      end    end +  def self.destroy_all_disabled +    Identity.disabled.each do |identity| +      identity.destroy +    end +  end +    def self.attributes_from_user(user)      { user_id: user.id,        address: user.email_address, diff --git a/users/test/unit/account_test.rb b/users/test/unit/account_test.rb index a8c6efd..4fb3c3d 100644 --- a/users/test/unit/account_test.rb +++ b/users/test/unit/account_test.rb @@ -2,6 +2,10 @@ require 'test_helper'  class AccountTest < ActiveSupport::TestCase +  teardown do +    Identity.destroy_all_disabled +  end +    test "create a new account" do      user = Account.create(FactoryGirl.attributes_for(:user))      assert user.valid? diff --git a/users/test/unit/identity_test.rb b/users/test/unit/identity_test.rb index 8270689..78ef52c 100644 --- a/users/test/unit/identity_test.rb +++ b/users/test/unit/identity_test.rb @@ -107,7 +107,16 @@ class IdentityTest < ActiveSupport::TestCase      other_user = find_record :user      taken = Identity.build_for other_user, address: id.address      assert !taken.valid? -    id.destroy +    Identity.destroy_all_disabled +  end + +  test "destroy all disabled identities" do +    id = Identity.for(@user) +    id.disable +    id.save +    assert Identity.count > 0 +    Identity.destroy_all_disabled +    assert_equal 0, Identity.count    end    def alias_name | 
