diff --git a/spec/stores/account-store-spec.coffee b/spec/stores/account-store-spec.coffee index ea0369845..5709b9a43 100644 --- a/spec/stores/account-store-spec.coffee +++ b/spec/stores/account-store-spec.coffee @@ -39,6 +39,21 @@ describe "AccountStore", -> (new Account).fromJSON(accounts[1]) ]) + describe "accountForEmail", -> + beforeEach -> + @instance = new @constructor + @ac1 = new Account emailAddress: 'juan@nylas.com', aliases: [] + @ac2 = new Account emailAddress: 'juan@gmail.com', aliases: ['Juan '] + @ac3 = new Account emailAddress: 'jackie@columbia.edu', aliases: ['Jackie Luo '] + @instance._accounts = [@ac1, @ac2, @ac3] + + it 'returns correct account when no alises present', -> + expect(@instance.accountForEmail('juan@nylas.com')).toEqual @ac1 + + it 'returns correct account when alias is used', -> + expect(@instance.accountForEmail('juanchis@gmail.com')).toEqual @ac2 + expect(@instance.accountForEmail('jacqueline.luo@columbia.edu')).toEqual @ac3 + describe "adding account from json", -> beforeEach -> spyOn(NylasEnv.config, "set") diff --git a/src/flux/stores/account-store.coffee b/src/flux/stores/account-store.coffee index e81c2faf0..4b85a3171 100644 --- a/src/flux/stores/account-store.coffee +++ b/src/flux/stores/account-store.coffee @@ -1,11 +1,10 @@ +_ = require 'underscore' +NylasStore = require 'nylas-store' Actions = require '../actions' Account = require '../models/account' Utils = require '../models/utils' DatabaseStore = require './database-store' -_ = require 'underscore' -{Listener, Publisher} = require '../modules/reflux-coffee' -CoffeeHelpers = require '../coffee-helpers' saveObjectsKey = "nylas.accounts" saveTokensKey = "nylas.accountTokens" @@ -16,11 +15,7 @@ the database and exposes the currently active Account via {::current} Section: Stores ### -class AccountStore - @include: CoffeeHelpers.includeModule - - @include Publisher - @include Listener +class AccountStore extends NylasStore constructor: -> @_load() @@ -140,7 +135,8 @@ class AccountStore _.find @_accounts, (account) -> return true if Utils.emailIsEquivalent(email, account.emailAddress) for alias in account.aliases - return true if Utils.emailIsEquivalent(email, alias) + aliasContact = account.meUsingAlias(alias) + return true if Utils.emailIsEquivalent(email, aliasContact.email) return false # Public: Returns the {Account} for the given account id, or null.