Mailspring/internal_packages/message-list/spec/message-participants-spec.cjsx
Ben Gotow 4be05ff754 feat(tracking-pixels): New MessageStore extension cuts out tracking pixels you've *sent* so you don't trigger them
Summary:
- Remove thread_participants prop, we don't use them anywhere and the underscore-case is ugly.

- Move autolinker into extension, update autolinker to 0.18.1 for phone number support

- document message.coffee, add isFromMe()

- Add tracking pixel extension that removes pixels from mail you *send*. Maybe more features later.

Test Plan: Run 1 new test! (woo...)

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1787
2015-07-23 10:57:13 -07:00

108 lines
3.8 KiB
CoffeeScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

_ = 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)
describe "MessageParticipants", ->
describe "when collapsed", ->
beforeEach ->
@participants = TestUtils.renderIntoDocument(
<MessageParticipants to={test_message.to}
cc={test_message.cc}
from={test_message.from}
message_participants={test_message.participants()} />
)
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(
<MessageParticipants to={test_message.to}
cc={test_message.cc}
from={test_message.from}
isDetailed={true}
message_participants={test_message.participants()} />
)
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 <user2@nylas.com>"
# TODO: We no longer display "to everyone"
#
# it "determines the message is to everyone", ->
# p1 = TestUtils.renderIntoDocument(
# <MessageParticipants to={big_test_message.to}
# cc={big_test_message.cc}
# from={big_test_message.from}
# message_participants={big_test_message.participants()} />
# )
# expect(p1._isToEveryone()).toBe true
#
# it "knows when the message isn't to everyone due to participant mismatch", ->
# p2 = TestUtils.renderIntoDocument(
# <MessageParticipants to={test_message.to}
# cc={test_message.cc}
# from={test_message.from}
# message_participants={test_message.participants()} />
# )
# # 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(
# <MessageParticipants to={test_message.to}
# cc={test_message.cc}
# from={test_message.from}
# message_participants={test_message.participants()} />
# )
# # this should be false because we don't count bccs
# expect(p2._isToEveryone()).toBe false