summaryrefslogtreecommitdiff
path: root/web-ui/test/spec
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-10-16 13:53:16 +0200
committerDuda Dornelles <ddornell@thoughtworks.com>2014-10-16 13:54:03 +0200
commit0de9d8dc31298921f7272d74cdd3c5d4217b5841 (patch)
tree468ba5005379151eff72c5aaaf37db9ba29b3ef7 /web-ui/test/spec
parent761e85e523ec61f5629a9f1f6e4196e23ce96673 (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.js8
-rw-r--r--web-ui/test/spec/tags/ui/tag.spec.js51
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: {