2015-09-14 22:37:00 +08:00
|
|
|
_ = require "underscore"
|
2016-03-29 16:41:24 +08:00
|
|
|
React = require "react"
|
2015-09-14 22:37:00 +08:00
|
|
|
Fields = require '../lib/fields'
|
2016-03-29 16:41:24 +08:00
|
|
|
ReactTestUtils = require('react-addons-test-utils')
|
2015-09-14 22:37:00 +08:00
|
|
|
AccountContactField = require '../lib/account-contact-field'
|
|
|
|
ExpandedParticipants = require '../lib/expanded-participants'
|
2015-09-15 04:12:28 +08:00
|
|
|
{Actions} = require 'nylas-exports'
|
2015-09-14 22:37:00 +08:00
|
|
|
|
|
|
|
describe "ExpandedParticipants", ->
|
|
|
|
makeField = (props={}) ->
|
|
|
|
@onChangeParticipants = jasmine.createSpy("onChangeParticipants")
|
2015-12-09 09:44:20 +08:00
|
|
|
@onAdjustEnabledFields = jasmine.createSpy("onAdjustEnabledFields")
|
2015-09-14 22:37:00 +08:00
|
|
|
props.onChangeParticipants = @onChangeParticipants
|
2015-12-09 09:44:20 +08:00
|
|
|
props.onAdjustEnabledFields = @onAdjustEnabledFields
|
2015-09-14 22:37:00 +08:00
|
|
|
@fields = ReactTestUtils.renderIntoDocument(
|
|
|
|
<ExpandedParticipants {...props} />
|
|
|
|
)
|
|
|
|
|
|
|
|
it "always renders to field", ->
|
|
|
|
makeField.call(@)
|
|
|
|
el = ReactTestUtils.findRenderedDOMComponentWithClass(@fields, "to-field")
|
|
|
|
expect(el).toBeDefined()
|
|
|
|
|
|
|
|
it "renders cc when enabled", ->
|
|
|
|
makeField.call(@, enabledFields: [Fields.Cc])
|
|
|
|
el = ReactTestUtils.findRenderedDOMComponentWithClass(@fields, "cc-field")
|
|
|
|
expect(el).toBeDefined()
|
|
|
|
|
|
|
|
it "renders bcc when enabled", ->
|
|
|
|
makeField.call(@, enabledFields: [Fields.Bcc])
|
|
|
|
el = ReactTestUtils.findRenderedDOMComponentWithClass(@fields, "bcc-field")
|
|
|
|
expect(el).toBeDefined()
|
|
|
|
|
|
|
|
it "renders from when enabled", ->
|
|
|
|
makeField.call(@, enabledFields: [Fields.From])
|
|
|
|
el = ReactTestUtils.findRenderedComponentWithType(@fields, AccountContactField)
|
|
|
|
expect(el).toBeDefined()
|
|
|
|
|
|
|
|
it "empties cc and focuses on to field", ->
|
|
|
|
makeField.call(@, enabledFields: [Fields.Cc, Fields.Bcc, Fields.Subject])
|
|
|
|
@fields.refs[Fields.Cc].props.onEmptied()
|
2015-12-09 09:44:20 +08:00
|
|
|
expect(@onAdjustEnabledFields).toHaveBeenCalledWith hide: [Fields.Cc]
|
2015-09-14 22:37:00 +08:00
|
|
|
|
|
|
|
it "empties bcc and focuses on to field", ->
|
|
|
|
makeField.call(@, enabledFields: [Fields.Cc, Fields.Bcc, Fields.Subject])
|
|
|
|
@fields.refs[Fields.Bcc].props.onEmptied()
|
2015-12-09 09:44:20 +08:00
|
|
|
expect(@onAdjustEnabledFields).toHaveBeenCalledWith hide: [Fields.Bcc]
|
2015-09-14 22:37:00 +08:00
|
|
|
|
|
|
|
it "empties bcc and focuses on cc field", ->
|
|
|
|
makeField.call(@, enabledFields: [Fields.Bcc, Fields.Subject])
|
|
|
|
@fields.refs[Fields.Bcc].props.onEmptied()
|
2015-12-09 09:44:20 +08:00
|
|
|
expect(@onAdjustEnabledFields).toHaveBeenCalledWith hide: [Fields.Bcc]
|
2015-09-14 22:37:00 +08:00
|
|
|
|
|
|
|
it "notifies when participants change", ->
|
|
|
|
makeField.call(@, enabledFields: [Fields.Cc, Fields.Bcc, Fields.Subject])
|
|
|
|
@fields.refs[Fields.Cc].props.change()
|
|
|
|
expect(@onChangeParticipants).toHaveBeenCalled()
|