diff options
Diffstat (limited to 'js/tests/unit')
-rw-r--r-- | js/tests/unit/controller/ContentControllerSpec.js | 122 | ||||
-rw-r--r-- | js/tests/unit/service/ItemResourceSpec.js | 73 |
2 files changed, 130 insertions, 65 deletions
diff --git a/js/tests/unit/controller/ContentControllerSpec.js b/js/tests/unit/controller/ContentControllerSpec.js index ac7c6f1a8..658ae9252 100644 --- a/js/tests/unit/controller/ContentControllerSpec.js +++ b/js/tests/unit/controller/ContentControllerSpec.js @@ -63,4 +63,126 @@ describe('ContentController', () => { expect(ctrl.orderBy()).toBe('-id'); })); + + it('should mark read', inject(($controller, + ItemResource, FeedResource, Publisher) => { + + Publisher.subscribe(ItemResource).toChannels('items'); + ItemResource.markItemRead = jasmine.createSpy('markRead'); + FeedResource.markItemOfFeedRead = jasmine.createSpy('markRead'); + + let ctrl = $controller('ContentController', { + ItemResource: ItemResource, + FeedResource: FeedResource, + data: { + 'items': [{ + id: 3, + feedId: 4 + }] + }, + }); + + ctrl.markRead(3); + + expect(ItemResource.markItemRead).toHaveBeenCalledWith(3); + expect(FeedResource.markItemOfFeedRead).toHaveBeenCalledWith(4); + })); + + + it('should toggle keep unread when unread', inject(($controller, + ItemResource, FeedResource, Publisher) => { + + Publisher.subscribe(ItemResource).toChannels('items'); + + let ctrl = $controller('ContentController', { + ItemResource: ItemResource, + FeedResource: FeedResource, + data: { + 'items': [{ + id: 3, + feedId: 4, + unread: true + }] + }, + }); + + ctrl.toggleKeepUnread(3); + + expect(ItemResource.get(3).keepUnread).toBe(true); + })); + + + it('should toggle keep unread when read', inject(($controller, + ItemResource, FeedResource, Publisher) => { + + Publisher.subscribe(ItemResource).toChannels('items'); + ItemResource.markItemRead = jasmine.createSpy('markRead'); + FeedResource.markItemOfFeedUnread = jasmine.createSpy('markRead'); + + let ctrl = $controller('ContentController', { + ItemResource: ItemResource, + FeedResource: FeedResource, + data: { + 'items': [{ + id: 3, + feedId: 4, + unread: false, + keepUnread: true + }] + }, + }); + + ctrl.toggleKeepUnread(3); + + expect(ItemResource.get(3).keepUnread).toBe(false); + expect(ItemResource.markItemRead).toHaveBeenCalledWith(3, false); + expect(FeedResource.markItemOfFeedUnread).toHaveBeenCalledWith(4); + })); + + + it('should get a feed', inject(($controller, FeedResource, Publisher) => { + + Publisher.subscribe(FeedResource).toChannels('feeds'); + + let ctrl = $controller('ContentController', { + FeedResource: FeedResource, + data: { + 'feeds': [{ + id: 3, + url: 4 + }] + }, + }); + + expect(ctrl.getFeed(3).url).toBe(4); + })); + + + it('should toggle starred', inject(($controller, ItemResource) => { + + ItemResource.toggleStar = jasmine.createSpy('star'); + + let ctrl = $controller('ContentController', { + ItemResource: ItemResource, + data: {}, + }); + + ctrl.toggleStar(3); + + expect(ItemResource.toggleStar).toHaveBeenCalledWith(3); + })); + + + + it('should publish compactview', inject(($controller, SettingsResource) => { + + SettingsResource.set('compact', true); + + let ctrl = $controller('ContentController', { + SettingsResource: SettingsResource, + data: {}, + }); + + expect(ctrl.isCompactView()).toBe(true); + })); }); diff --git a/js/tests/unit/service/ItemResourceSpec.js b/js/tests/unit/service/ItemResourceSpec.js index 4f2a572a9..50454d41a 100644 --- a/js/tests/unit/service/ItemResourceSpec.js +++ b/js/tests/unit/service/ItemResourceSpec.js @@ -35,31 +35,6 @@ describe('ItemResource', () => { })); - it ('should keep item unread', inject((ItemResource) => { - http.expectPOST('base/items/3/read', {isRead: false}).respond(200, {}); - - ItemResource.receive([ - { - id: 3, - feedId: 4, - unread: false - }, - { - id: 4, - feedId: 3, - unread: false - } - ], 'items'); - - ItemResource.keepUnread(3); - - http.flush(); - - expect(ItemResource.get(3).keepUnread).toBe(true); - expect(ItemResource.get(3).unread).toBe(true); - })); - - it ('should mark item as read', inject((ItemResource) => { http.expectPOST('base/items/3/read', {isRead: true}).respond(200, {}); @@ -172,57 +147,25 @@ describe('ItemResource', () => { })); - it ('should remember the highest id', inject((ItemResource) => { + it ('toggle star', inject((ItemResource) => { ItemResource.receive([ { id: 3, + starred: true }, { id: 5, - }, - { - id: 4, - } - ], 'items'); - - expect(ItemResource.getHighestId()).toBe(5); - })); - - - it ('should remember the lowest id', inject((ItemResource) => { - ItemResource.receive([ - { - id: 3, - }, - { - id: 5, - }, - { - id: 4, + starred: false } ], 'items'); - expect(ItemResource.getLowestId()).toBe(3); - })); - - - it ('should clear the highest and lowest id', inject((ItemResource) => { - ItemResource.receive([ - { - id: 3, - }, - { - id: 5, - }, - { - id: 4, - } - ], 'items'); + ItemResource.star = jasmine.createSpy('star'); - ItemResource.clear(); + ItemResource.toggleStar(3); + expect(ItemResource.star).toHaveBeenCalledWith(3, false); - expect(ItemResource.getHighestId()).toBe(0); - expect(ItemResource.getLowestId()).toBe(0); + ItemResource.toggleStar(5); + expect(ItemResource.star).toHaveBeenCalledWith(5, true); })); |