summaryrefslogtreecommitdiff
path: root/web-ui/test/spec/mail_view/ui/recipients/recipients.spec.js
blob: 7dd9000f2c311d28e191fb474829337b2ec1546b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* global Pixelated */

describeComponent('mail_view/ui/recipients/recipients',function () {
  'use strict';
  var recipientsUpdatedEvent;

  beforeEach(function () {
    spyOn($, 'getJSON').and.returnValue($.Deferred());
  });

  describe('initialization', function() {
    it('adds recipients', function() {
      this.setupComponent({name: 'to', addresses: ['foobar@gmail.com'] });
      expect(this.component.attr.recipients.length).toBe(1);
    });

    it('does not trigger recipients updated events on initialization', function() {
      recipientsUpdatedEvent = spyOnEvent(document, Pixelated.events.ui.recipients.updated);

      this.setupComponent({name: 'to', addresses: ['foobar@gmail.com'] });
      expect(recipientsUpdatedEvent).not.toHaveBeenTriggeredOn(document);
    });
  });

  describe('adding recipients from the ui', function() {
    beforeEach(function () {
      this.setupComponent();
      recipientsUpdatedEvent  = spyOnEvent(document, Pixelated.events.ui.recipients.updated);
      this.component.trigger(Pixelated.events.ui.recipients.entered, {name: 'to', addresses: ['foobar@gmail.com'] });
    });

    it('triggers recipients updated', function() {
      expect(recipientsUpdatedEvent).toHaveBeenTriggeredOn(document);
    });

    it('adds recipients', function() {
      expect(this.component.attr.recipients.length).toBe(1);
    });
  });
});