_ = require 'underscore'
React = require "react/addons"
ReactTestUtils = React.addons.TestUtils
TestUtils = React.addons.TestUtils
{Contact, Message} = require "nylas-exports"
MessageParticipants = require "../lib/message-participants"
user_1 =
name: "User One"
email: "user1@nylas.com"
user_2 =
name: "User Two"
email: "user2@nylas.com"
user_3 =
name: "User Three"
email: "user3@nylas.com"
user_4 =
name: "User Four"
email: "user4@nylas.com"
user_5 =
name: "User Five"
email: "user5@nylas.com"
many_users = (new Contact({name: "User #{i}", email:"#{i}@app.com"}) for i in [0..100])
test_message = (new Message).fromJSON({
"id" : "111",
"from" : [ user_1 ],
"to" : [ user_2 ],
"cc" : [ user_3, user_4 ],
"bcc" : [ user_5 ]
})
big_test_message = (new Message).fromJSON({
"id" : "222",
"from" : [ user_1 ],
"to" : many_users
})
many_thread_users = [user_1].concat(many_users)
thread_participants = [
(new Contact(user_1)),
(new Contact(user_2)),
(new Contact(user_3)),
(new Contact(user_4))
]
thread2_participants = [
(new Contact(user_1)),
(new Contact(user_2)),
(new Contact(user_3)),
(new Contact(user_4)),
(new Contact(user_5))
]
describe "MessageParticipants", ->
describe "when collapsed", ->
beforeEach ->
@participants = TestUtils.renderIntoDocument(
)
it "renders into the document", ->
participants = ReactTestUtils.findRenderedDOMComponentWithClass(@participants, "collapsed-participants")
expect(participants).toBeDefined()
it "uses short names", ->
to = ReactTestUtils.findRenderedDOMComponentWithClass(@participants, "to-contact")
expect(React.findDOMNode(to).innerHTML).toBe "User"
describe "when expanded", ->
beforeEach ->
@participants = TestUtils.renderIntoDocument(
)
it "renders into the document", ->
participants = ReactTestUtils.findRenderedDOMComponentWithClass(@participants, "expanded-participants")
expect(participants).toBeDefined()
it "uses full names", ->
to = ReactTestUtils.findRenderedDOMComponentWithClass(@participants, "to-contact")
expect(React.findDOMNode(to).innerText.trim()).toEqual "User Two "
# TODO: We no longer display "to everyone"
#
# it "determines the message is to everyone", ->
# p1 = TestUtils.renderIntoDocument(
#
# )
# expect(p1._isToEveryone()).toBe true
#
# it "knows when the message isn't to everyone due to participant mismatch", ->
# p2 = TestUtils.renderIntoDocument(
#
# )
# # this should be false because we don't count bccs
# expect(p2._isToEveryone()).toBe false
#
# it "knows when the message isn't to everyone due to participant size", ->
# p2 = TestUtils.renderIntoDocument(
#
# )
# # this should be false because we don't count bccs
# expect(p2._isToEveryone()).toBe false