From 019b286b8e997bea3fb6a0555c91c565ca2d684f Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Thu, 9 May 2013 14:03:37 +0200 Subject: Fix a bug that would mark the items on the right side as read regardless of feed or folder id --- .../businesslayer/feedbusinesslayerSpec.coffee | 18 ++++++++++++------ .../businesslayer/folderbusinesslayerSpec.coffee | 22 ++++++++++++++++++++-- .../subsriptionsbusinesslayerSpec.coffee | 5 +++++ 3 files changed, 37 insertions(+), 8 deletions(-) (limited to 'js/tests/services/businesslayer') diff --git a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee index a41426922..42cab53b1 100644 --- a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee +++ b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee @@ -94,6 +94,7 @@ describe 'FeedBusinessLayer', -> it 'should not mark feed read when no highest item id', => + @FeedModel.add({id: 5, unreadCount:2, folderId: 2, url: 'a1'}) @persistence.setFeedRead = jasmine.createSpy('setFeedRead') @FeedBusinessLayer.markRead(5) expect(@persistence.setFeedRead).not.toHaveBeenCalled() @@ -103,17 +104,22 @@ describe 'FeedBusinessLayer', -> @NewestItem.handle(25) @ActiveFeed.handle({type: @FeedType.Feed, id: 5}) @persistence.setFeedRead = jasmine.createSpy('setFeedRead') + @FeedModel.add({id: 5, unreadCount:2, folderId: 2, url: 'a1'}) - @ItemModel.add({id: 6, feedId: 5, guidHash: 'a1'}) - @ItemModel.add({id: 3, feedId: 5, guidHash: 'a2'}) - @ItemModel.add({id: 2, feedId: 5, guidHash: 'a3'}) + + item1 = {id: 3, feedId: 5, guidHash: 'a3', status: 0} + @ItemModel.add(item1) + item1.setUnread() + item2 = {id: 2, feedId: 3, guidHash: 'a3', status: 0} + @ItemModel.add(item2) + item2.setUnread() + @FeedBusinessLayer.markRead(5) expect(@persistence.setFeedRead).toHaveBeenCalledWith(5, 25) expect(@FeedModel.getById(5).unreadCount).toBe(0) - expect(@ItemModel.getById(6).isRead()).toBeTruthy() - expect(@ItemModel.getById(3).isRead()).toBeTruthy() - expect(@ItemModel.getById(2).isRead()).toBeTruthy() + expect(item1.isRead()).toBe(true) + expect(item2.isRead()).toBe(false) it 'should get the correct unread count for subscribtions', => diff --git a/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee b/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee index 4d23d5b8d..c0ea2aedb 100644 --- a/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee +++ b/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee @@ -40,7 +40,7 @@ describe 'FolderBusinessLayer', -> beforeEach inject (@FolderBusinessLayer, @FolderModel, @FeedModel, @ShowAll, @ActiveFeed, @FeedType, @_ExistsError, @$timeout, - @NewestItem) => + @NewestItem, @ItemModel) => @ShowAll.setShowAll(false) @ActiveFeed.handle({type: @FeedType.Feed, id:0}) @@ -88,9 +88,17 @@ describe 'FolderBusinessLayer', -> it 'should mark folder as read', => @NewestItem.handle(25) - @FolderModel.add({id: 3, opened: false, name: 'ho'}) @persistence.setFolderRead = jasmine.createSpy('setFeedRead') + + item1 = {id: 3, feedId: 5, guidHash: 'a3', status: 0} + @ItemModel.add(item1) + item1.setUnread() + item2 = {id: 2, feedId: 3, guidHash: 'a3', status: 0} + @ItemModel.add(item2) + item2.setUnread() + + @FolderModel.add({id: 3, opened: false, name: 'ho'}) @FeedModel.add({id: 3, unreadCount:134, folderId: 3, url: 'a1'}) @FeedModel.add({id: 5, unreadCount:2, folderId: 2, url: 'a2'}) @FeedModel.add({id: 1, unreadCount:12, folderId: 3, url: 'a3'}) @@ -101,9 +109,19 @@ describe 'FolderBusinessLayer', -> expect(@FeedModel.getById(1).unreadCount).toBe(0) expect(@FeedModel.getById(5).unreadCount).toBe(2) + expect(item1.isRead()).toBe(false) + expect(item2.isRead()).toBe(true) + expect(@persistence.setFolderRead).toHaveBeenCalledWith(3, 25) + it 'should not mark folder read when no highest item id', => + @FolderModel.add({id: 5, opened: false, name: 'ho'}) + @persistence.setFolderRead = jasmine.createSpy('setFolderRead') + @FolderBusinessLayer.markRead(5) + expect(@persistence.setFolderRead).not.toHaveBeenCalled() + + it 'should get the correct unread count', => @FeedModel.add({id: 5, unreadCount:2, folderId: 2, url: 'a1'}) @FeedModel.add({id: 6, unreadCount:3, folderId: 3, url: 'a2'}) diff --git a/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee b/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee index 9e3437b3c..26698ae3c 100644 --- a/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee +++ b/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee @@ -83,6 +83,11 @@ describe 'SubscriptionsBusinessLayer', -> expect(@persistence.setAllRead).toHaveBeenCalledWith(25) + it 'should not mark all read when no highest item id', => + @persistence.setAllRead = jasmine.createSpy('setAllRead') + @SubscriptionsBusinessLayer.markRead() + expect(@persistence.setAllRead).not.toHaveBeenCalled() + it 'should get the correct unread count', => @FeedModel.add({id: 3, unreadCount: 132, url: 'hoho'}) @FeedModel.add({id: 4, unreadCount: 12, url: 'hohod'}) -- cgit v1.2.3