fix(account-store): Correctly check alias email inside accountForAlias

- Add spec
This commit is contained in:
Juan Tejada 2016-02-07 00:39:11 -08:00
parent 12f4142d84
commit 4641fc4938
2 changed files with 20 additions and 9 deletions

View file

@ -39,6 +39,21 @@ describe "AccountStore", ->
(new Account).fromJSON(accounts[1]) (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 <juanchis@gmail.com>']
@ac3 = new Account emailAddress: 'jackie@columbia.edu', aliases: ['Jackie Luo <jacqueline.luo@columbia.edu>']
@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", -> describe "adding account from json", ->
beforeEach -> beforeEach ->
spyOn(NylasEnv.config, "set") spyOn(NylasEnv.config, "set")

View file

@ -1,11 +1,10 @@
_ = require 'underscore'
NylasStore = require 'nylas-store'
Actions = require '../actions' Actions = require '../actions'
Account = require '../models/account' Account = require '../models/account'
Utils = require '../models/utils' Utils = require '../models/utils'
DatabaseStore = require './database-store' DatabaseStore = require './database-store'
_ = require 'underscore'
{Listener, Publisher} = require '../modules/reflux-coffee'
CoffeeHelpers = require '../coffee-helpers'
saveObjectsKey = "nylas.accounts" saveObjectsKey = "nylas.accounts"
saveTokensKey = "nylas.accountTokens" saveTokensKey = "nylas.accountTokens"
@ -16,11 +15,7 @@ the database and exposes the currently active Account via {::current}
Section: Stores Section: Stores
### ###
class AccountStore class AccountStore extends NylasStore
@include: CoffeeHelpers.includeModule
@include Publisher
@include Listener
constructor: -> constructor: ->
@_load() @_load()
@ -140,7 +135,8 @@ class AccountStore
_.find @_accounts, (account) -> _.find @_accounts, (account) ->
return true if Utils.emailIsEquivalent(email, account.emailAddress) return true if Utils.emailIsEquivalent(email, account.emailAddress)
for alias in account.aliases 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 return false
# Public: Returns the {Account} for the given account id, or null. # Public: Returns the {Account} for the given account id, or null.