summaryrefslogtreecommitdiff
path: root/web-ui/test/spec
diff options
context:
space:
mode:
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: {