diff options
Diffstat (limited to 'js/tests/unit/controller/ContentControllerSpec.js')
-rw-r--r-- | js/tests/unit/controller/ContentControllerSpec.js | 122 |
1 files changed, 122 insertions, 0 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); + })); }); |