diff options
author | Duda Dornelles <ddornell@thoughtworks.com> | 2014-10-16 13:53:16 +0200 |
---|---|---|
committer | Duda Dornelles <ddornell@thoughtworks.com> | 2014-10-16 13:54:03 +0200 |
commit | 0de9d8dc31298921f7272d74cdd3c5d4217b5841 (patch) | |
tree | 468ba5005379151eff72c5aaaf37db9ba29b3ef7 /web-ui/test/spec | |
parent | 761e85e523ec61f5629a9f1f6e4196e23ce96673 (diff) |
decreasing count on tag and tag shortcut when email is read. we were
decreasing only tags that were also in the read mail, but we have also
to look at the mailbox and compare that to the tags in the case of
default tags #95
Diffstat (limited to 'web-ui/test/spec')
-rw-r--r-- | web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js | 8 | ||||
-rw-r--r-- | web-ui/test/spec/tags/ui/tag.spec.js | 51 |
2 files changed, 46 insertions, 13 deletions
diff --git a/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js b/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js index ecb2b854..b03babb5 100644 --- a/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js +++ b/web-ui/test/spec/mail_list/ui/mail_items/generic_mail_item.spec.js @@ -5,7 +5,8 @@ describeComponent('mail_list/ui/mail_items/generic_mail_item', function () { beforeEach(function () { mail = Pixelated.testData().parsedMail.simpleTextPlain; - mail.tags = ['inbox']; + mail.tags = []; + mail.mailbox = 'inbox'; setupComponent('<li></li>', { mail: mail, @@ -95,7 +96,7 @@ describeComponent('mail_list/ui/mail_items/generic_mail_item', function () { expect(this.component.attr.mail.status).toContain(this.component.status.READ); expect(this.$node.attr('class')).toMatch('status-read'); - expect(mailReadEvent).toHaveBeenTriggeredOnAndWith(document, { ident: mail.ident, tags: ['inbox'] }); + expect(mailReadEvent).toHaveBeenTriggeredOnAndWith(document, { ident: mail.ident, tags: [], mailbox: 'inbox' }); }); }); @@ -110,7 +111,8 @@ describeComponent('mail_list/ui/mail_items/generic_mail_item', function () { this.$node.find('a').click(); - expect(mailReadEvent).toHaveBeenTriggeredOnAndWith(document, jasmine.objectContaining({ident: mail.ident})); + var expectedEventData = {ident: mail.ident}; + expect(mailReadEvent).toHaveBeenTriggeredOnAndWith(document, jasmine.objectContaining(expectedEventData)); }); it('should not trigger mail:read event when clicking mail that is already read', function () { diff --git a/web-ui/test/spec/tags/ui/tag.spec.js b/web-ui/test/spec/tags/ui/tag.spec.js index de78ba75..48f761da 100644 --- a/web-ui/test/spec/tags/ui/tag.spec.js +++ b/web-ui/test/spec/tags/ui/tag.spec.js @@ -4,7 +4,7 @@ describeComponent('tags/ui/tag', function () { 'use strict'; - describe('inbox tag', function() { + describe('inbox tag', function () { beforeEach(function () { setupComponent('<li></li>', { tag: { @@ -46,11 +46,42 @@ describeComponent('tags/ui/tag', function () { expect(tagSelectedEvent).toHaveBeenTriggeredOnAndWith(document, { tag: 'drafts'}); }); - it('increases the read count when there is an email read and the email has that tag', function () { + describe('increasing count read when email is read', function () { + it('doesnt update if mail.tags or mail.mailbox dont match the tag name', function () { + setupComponent('<li></li>', { + tag: { name: 'sometag', ident: '1', counts: { total: 100, read: 0 } } + }); + + $(document).trigger(Pixelated.events.mail.read, { tags: ['someothertag'], mailbox: 'inbox' }); + + expect(this.component.attr.tag.counts.read).toEqual(0); + }); + + it('looks at the mail mailbox attr for default tags', function () { + $(document).trigger(Pixelated.events.mail.read, { tags: [], mailbox: 'inbox' }); + + expect(this.component.attr.tag.counts.read).toEqual(1); + expect(this.$node.html()).toMatch('<span class="unread-count">99</span>'); + }); + + it('looks at the mail tags for non default tags', function () { + setupComponent('<li></li>', { + tag: { name: 'tag', ident: '1', counts: { total: 100, read: 0 } } + }); + + $(document).trigger(Pixelated.events.mail.read, { tags: ['tag'], mailbox: 'inbox' }); + + expect(this.component.attr.tag.counts.read).toEqual(1); + expect(this.$node.html()).toMatch('<span class="unread-count">99</span>'); + }); + }); + + it('re-renders the tag shortcut linked to it when increasing the read count if there is a shortcut', function () { + this.component.attr.shortcut = jasmine.createSpyObj('shortcut', ['reRender']); + $(document).trigger(Pixelated.events.mail.read, { tags: ['inbox'] }); - expect(this.component.attr.tag.counts.read).toEqual(1); - expect(this.$node.html()).toMatch('<span class="unread-count">99</span>'); + expect(this.component.attr.shortcut.reRender).toHaveBeenCalled(); }); it('doesnt increase the read count when the read email doesnt have the tag', function () { @@ -89,7 +120,7 @@ describeComponent('tags/ui/tag', function () { }); }); - describe('all tag', function(){ + describe('all tag', function () { beforeEach(function () { setupComponent('<li></li>', { tag: { @@ -103,18 +134,18 @@ describeComponent('tags/ui/tag', function () { }); }); - it('adds searching class when user is doing a search', function(){ + it('adds searching class when user is doing a search', function () { $(document).trigger(Pixelated.events.search.perform, {}); expect(this.$node.attr('class')).toMatch('searching'); }); - it('removes searching class when user searches for empty string', function(){ + it('removes searching class when user searches for empty string', function () { $(document).trigger(Pixelated.events.search.perform, {}); $(document).trigger(Pixelated.events.search.empty); expect(this.$node.attr('class')).not.toMatch('searching'); }); - it('removes searching class when user clicks in any tag', function(){ + it('removes searching class when user clicks in any tag', function () { $(document).trigger(Pixelated.events.search.perform, {}); this.$node.click(); expect(this.$node.attr('class')).not.toMatch('searching'); @@ -122,8 +153,8 @@ describeComponent('tags/ui/tag', function () { }); - _.each(['sent', 'trash'], function(tag_name) { - describe(tag_name + ' tag', function() { + _.each(['sent', 'trash'], function (tag_name) { + describe(tag_name + ' tag', function () { beforeEach(function () { setupComponent('<li></li>', { tag: { |