From 32e625a9389bc7352c911ebc5db289647db3ba66 Mon Sep 17 00:00:00 2001 From: Giovane Date: Tue, 29 Dec 2015 15:08:54 -0200 Subject: Listens to mails available events and count unread #564 - Considering unread all the mails that doesn't have the 'read' status - Remove initial templates because title doesn't support html tags inside --- web-ui/test/spec/page/unread_count_title.spec.js | 48 +++++++++++++++++++----- 1 file changed, 38 insertions(+), 10 deletions(-) (limited to 'web-ui/test') diff --git a/web-ui/test/spec/page/unread_count_title.spec.js b/web-ui/test/spec/page/unread_count_title.spec.js index ce49c48b..0291c1db 100644 --- a/web-ui/test/spec/page/unread_count_title.spec.js +++ b/web-ui/test/spec/page/unread_count_title.spec.js @@ -1,21 +1,49 @@ describeComponent('page/unread_count_title', function () { 'use strict'; - describe('title bar', function () { + describe('unread count on title bar', function () { + beforeEach(function () { - this.setupComponent(''); + document.title = 'example@pixelated-project.org'; + this.setupComponent(); + }); + + it('listens to mails available event', function () { + this.component.trigger(Pixelated.events.mails.available, {mails: []}); + expect(this.component.getTitleText()).toEqual('example@pixelated-project.org'); }); - it('should render template', function () { - expect(this.$node).toExist(); - expect(this.$node.html()).toEqual('(1)'); + it('only considers unread mails', function () { + var readMail = {'status': ['read']}; + this.component.trigger(Pixelated.events.mails.available, {mails: [readMail]}); + expect(this.component.getTitleText()).toEqual('example@pixelated-project.org'); }); - - it('should update count on mail read event', function () { - this.component.trigger(Pixelated.events.mails.read); - $(document).trigger(Pixelated.events.mail.read, { tags: ['someothertag'], mailbox: 'inbox' }); - expect(this.$node.html()).toEqual('(1)'); + + it('update for one unread email', function () { + var mails = [{'status': ['read']}, {'status': []}]; + this.component.trigger(Pixelated.events.mails.available, {mails: mails}); + expect(this.component.getTitleText()).toEqual('(1) - example@pixelated-project.org'); + }); + + it('update for more than one unread email', function () { + var mails = [{'status': ['read']}, {'status': []}, {'status': []}]; + this.component.trigger(Pixelated.events.mails.available, {mails: mails}); + expect(this.component.getTitleText()).toEqual('(2) - example@pixelated-project.org'); }); + it('update for more than one unread email', function () { + var mails = [{'status': ['read']}, {'status': []}, {'status': []}]; + this.component.trigger(Pixelated.events.mails.available, {mails: mails}); + expect(this.component.getTitleText()).toEqual('(2) - example@pixelated-project.org'); + }); + + it('decreases unread count', function () { + document.title = '(2) - example@pixelated-project.org'; + var mails = [{'status': ['read']}, {'status': ['read']}]; + this.component.trigger(Pixelated.events.mails.available, {mails: mails}); + expect(this.component.getTitleText()).toEqual('example@pixelated-project.org'); + }); + + }); }); -- cgit v1.2.3