mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-23 00:36:50 +08:00
135 lines
4.5 KiB
JavaScript
135 lines
4.5 KiB
JavaScript
const React = require('react');
|
|
const ReactDOM = require('react-dom');
|
|
const ReactTestUtils = require('react-dom/test-utils');
|
|
const { Message } = require('mailspring-exports');
|
|
const MessageParticipants = require('../lib/message-participants').default;
|
|
|
|
const user_1 = {
|
|
name: 'User One',
|
|
email: 'user1@nylas.com',
|
|
};
|
|
const user_2 = {
|
|
name: 'User Two',
|
|
email: 'user2@nylas.com',
|
|
};
|
|
const user_3 = {
|
|
name: 'User Three',
|
|
email: 'user3@nylas.com',
|
|
};
|
|
const user_4 = {
|
|
name: 'User Four',
|
|
email: 'user4@nylas.com',
|
|
};
|
|
const user_5 = {
|
|
name: 'User Five',
|
|
email: 'user5@nylas.com',
|
|
};
|
|
|
|
const test_message = new Message().fromJSON({
|
|
id: '111',
|
|
from: [user_1],
|
|
to: [user_2],
|
|
cc: [user_3, user_4],
|
|
bcc: [user_5],
|
|
});
|
|
|
|
describe('MessageParticipants', function() {
|
|
describe('when collapsed', function() {
|
|
const makeParticipants = props =>
|
|
ReactTestUtils.renderIntoDocument(<MessageParticipants {...props} />);
|
|
|
|
it('renders into the document', function() {
|
|
const participants = makeParticipants(
|
|
{ to: test_message.to, cc: test_message.cc },
|
|
{ from: test_message.from, message_participants: test_message.participants() }
|
|
);
|
|
expect(participants).toBeDefined();
|
|
});
|
|
|
|
it('uses short names', function() {
|
|
const actualOut = makeParticipants({ to: test_message.to });
|
|
const to = ReactTestUtils.findRenderedDOMComponentWithClass(actualOut, 'to-contact');
|
|
expect(ReactDOM.findDOMNode(to).innerHTML).toBe('User');
|
|
});
|
|
|
|
it("doesn't render any To nodes if To array is empty", function() {
|
|
const actualOut = makeParticipants({ to: [] });
|
|
const findToField = () =>
|
|
ReactTestUtils.findRenderedDOMComponentWithClass(actualOut, 'to-contact');
|
|
expect(findToField).toThrow();
|
|
});
|
|
|
|
it("doesn't render any Cc nodes if Cc array is empty", function() {
|
|
const actualOut = makeParticipants({ cc: [] });
|
|
const findCcField = () =>
|
|
ReactTestUtils.findRenderedDOMComponentWithClass(actualOut, 'cc-contact');
|
|
expect(findCcField).toThrow();
|
|
});
|
|
|
|
it("doesn't render any Bcc nodes if Bcc array is empty", function() {
|
|
const actualOut = makeParticipants({ bcc: [] });
|
|
const findBccField = () =>
|
|
ReactTestUtils.findRenderedDOMComponentWithClass(actualOut, 'bcc-contact');
|
|
expect(findBccField).toThrow();
|
|
});
|
|
});
|
|
|
|
describe('when expanded', function() {
|
|
beforeEach(function() {
|
|
this.participants = ReactTestUtils.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', function() {
|
|
const participants = ReactTestUtils.findRenderedDOMComponentWithClass(
|
|
this.participants,
|
|
'expanded-participants'
|
|
);
|
|
expect(participants).toBeDefined();
|
|
});
|
|
|
|
it('uses full names', function() {
|
|
const to = ReactTestUtils.findRenderedDOMComponentWithClass(this.participants, 'to-contact');
|
|
expect(ReactDOM.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
|