summaryrefslogtreecommitdiffstats
path: root/js/tests/unit/controller/ContentControllerSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tests/unit/controller/ContentControllerSpec.js')
-rw-r--r--js/tests/unit/controller/ContentControllerSpec.js122
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);
+ }));
});