From b8b4dfb4969e1baf84a14fb65a5dc153b0f5fae4 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Thu, 9 May 2013 12:57:35 +0200 Subject: only make one request for mark all read and mark folder read, fix #171, fix a bug that prevented readding of feeds when its folder was deleted, fix a bug that would not allow mark read for feeds when the app was started for the first time --- .../businesslayer/feedbusinesslayerSpec.coffee | 18 ++-------------- .../businesslayer/folderbusinesslayerSpec.coffee | 13 ++++++++++-- .../subsriptionsbusinesslayerSpec.coffee | 16 +++++++++------ js/tests/services/persistenceSpec.coffee | 24 +++++++++++++++++++++- 4 files changed, 46 insertions(+), 25 deletions(-) (limited to 'js/tests') diff --git a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee index 63268224e..a41426922 100644 --- a/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee +++ b/js/tests/services/businesslayer/feedbusinesslayerSpec.coffee @@ -95,7 +95,7 @@ describe 'FeedBusinessLayer', -> it 'should not mark feed read when no highest item id', => @persistence.setFeedRead = jasmine.createSpy('setFeedRead') - @FeedBusinessLayer.markFeedRead(5) + @FeedBusinessLayer.markRead(5) expect(@persistence.setFeedRead).not.toHaveBeenCalled() @@ -107,7 +107,7 @@ describe 'FeedBusinessLayer', -> @ItemModel.add({id: 6, feedId: 5, guidHash: 'a1'}) @ItemModel.add({id: 3, feedId: 5, guidHash: 'a2'}) @ItemModel.add({id: 2, feedId: 5, guidHash: 'a3'}) - @FeedBusinessLayer.markFeedRead(5) + @FeedBusinessLayer.markRead(5) expect(@persistence.setFeedRead).toHaveBeenCalledWith(5, 25) expect(@FeedModel.getById(5).unreadCount).toBe(0) @@ -116,20 +116,6 @@ describe 'FeedBusinessLayer', -> expect(@ItemModel.getById(2).isRead()).toBeTruthy() - it 'should mark all as read', => - @NewestItem.handle(25) - @persistence.setFeedRead = jasmine.createSpy('setFeedRead') - @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'}) - - @FeedBusinessLayer.markAllRead() - - expect(@FeedModel.getById(3).unreadCount).toBe(0) - expect(@FeedModel.getById(1).unreadCount).toBe(0) - expect(@FeedModel.getById(5).unreadCount).toBe(0) - - it 'should get the correct unread count for subscribtions', => @FeedModel.add({id: 3, unreadCount:134, url: 'a1'}) @FeedModel.add({id: 5, unreadCount:2, url: 'a2'}) diff --git a/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee b/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee index 56d90de86..4d23d5b8d 100644 --- a/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee +++ b/js/tests/services/businesslayer/folderbusinesslayerSpec.coffee @@ -46,13 +46,18 @@ describe 'FolderBusinessLayer', -> it 'should delete folders', => + @FeedModel.add({id: 5, unreadCount:2, folderId: 3, url: 'a1'}) @FolderModel.removeById = jasmine.createSpy('remove').andCallFake -> return {id: 3, name: 'test'} + @FeedModel.removeById = jasmine.createSpy('remove').andCallFake -> + return {id: 5, name: 'test', folderId: 3} + @persistence.deleteFolder = jasmine.createSpy('deletequery') @FolderBusinessLayer.delete(3) @$timeout.flush() expect(@FolderModel.removeById).toHaveBeenCalledWith(3) + expect(@FeedModel.removeById).toHaveBeenCalledWith(5) expect(@persistence.deleteFolder).toHaveBeenCalledWith(3) @@ -83,17 +88,21 @@ describe 'FolderBusinessLayer', -> it 'should mark folder as read', => @NewestItem.handle(25) - @persistence.setFeedRead = jasmine.createSpy('setFeedRead') + @FolderModel.add({id: 3, opened: false, name: 'ho'}) + + @persistence.setFolderRead = jasmine.createSpy('setFeedRead') @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'}) - @FolderBusinessLayer.markFolderRead(3) + @FolderBusinessLayer.markRead(3) expect(@FeedModel.getById(3).unreadCount).toBe(0) expect(@FeedModel.getById(1).unreadCount).toBe(0) expect(@FeedModel.getById(5).unreadCount).toBe(2) + expect(@persistence.setFolderRead).toHaveBeenCalledWith(3, 25) + it 'should get the correct unread count', => @FeedModel.add({id: 5, unreadCount:2, folderId: 2, url: 'a1'}) diff --git a/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee b/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee index 6193a9795..9e3437b3c 100644 --- a/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee +++ b/js/tests/services/businesslayer/subsriptionsbusinesslayerSpec.coffee @@ -68,15 +68,19 @@ describe 'SubscriptionsBusinessLayer', -> expect(@SubscriptionsBusinessLayer.isVisible()).toBe(true) - it 'should mark all feeds as read', => + it 'should mark all as read', => @NewestItem.handle(25) - item = {id: 3, unreadCount: 132, url: 'hi'} - @FeedModel.add(item) + @persistence.setAllRead = jasmine.createSpy('setFeedRead') + @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'}) - @SubscriptionsBusinessLayer.markAllRead() + @SubscriptionsBusinessLayer.markRead() - expect(item.unreadCount).toBe(0) - expect(@persistence.setFeedRead).toHaveBeenCalled() + expect(@FeedModel.getById(3).unreadCount).toBe(0) + expect(@FeedModel.getById(1).unreadCount).toBe(0) + expect(@FeedModel.getById(5).unreadCount).toBe(0) + expect(@persistence.setAllRead).toHaveBeenCalledWith(25) it 'should get the correct unread count', => diff --git a/js/tests/services/persistenceSpec.coffee b/js/tests/services/persistenceSpec.coffee index e42d3bb17..16f8cbd69 100644 --- a/js/tests/services/persistenceSpec.coffee +++ b/js/tests/services/persistenceSpec.coffee @@ -117,6 +117,14 @@ describe 'Persistence', -> expect(@req.post).toHaveBeenCalledWith('news_items_unread', params) + it 'shoud send a correct request for marking all items read', => + params = + data: + highestItemId: 4 + + @Persistence.setAllRead(params.data.highestItemId) + + ### FEED CONTROLLER @@ -153,7 +161,7 @@ describe 'Persistence', -> expect(@req.post).toHaveBeenCalledWith('news_feeds_move', params) - it 'shoud send a correct request for marking all items read', => + it 'shoud send a correct request for marking all items of a feed read', => params = data: highestItemId: 4 @@ -298,6 +306,20 @@ describe 'Persistence', -> expect(@req.post).toHaveBeenCalledWith('news_folders_rename', params) + it 'shoud send a correct request for marking all items of a folders read', => + params = + data: + highestItemId: 4 + routeParams: + folderId: 3 + + @Persistence.setFolderRead(params.routeParams.folderId, + params.data.highestItemId) + + + expect(@req.post).toHaveBeenCalledWith('news_folders_read', params) + + ### EXPORT CONTROLLER ### -- cgit v1.2.3