From b645541d525a2be65b31c0718ce8451fa1135706 Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Fri, 18 Nov 2016 16:27:04 +0100 Subject: [PATCH] Update notifications when changing the stream fixes #6473 closes #7199 --- Changelog.md | 1 + app/assets/javascripts/app/app.js | 1 + spec/javascripts/app/app_spec.js | 35 +++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/Changelog.md b/Changelog.md index 429d30a4a..52b4a7de9 100644 --- a/Changelog.md +++ b/Changelog.md @@ -15,6 +15,7 @@ * Only reload profile header when changing aspect memberships [#7183](https://github.com/diaspora/diaspora/pull/7183) * Fix visiblity on invitation modal when opening it from the stream [#7191](https://github.com/diaspora/diaspora/pull/7191) * Add avatar fallback on tags page [#7198](https://github.com/diaspora/diaspora/pull/7198) +* Update notifications when changing the stream [#7199](https://github.com/diaspora/diaspora/pull/7199) ## Features * Show spinner when loading comments in the stream [#7170](https://github.com/diaspora/diaspora/pull/7170) diff --git a/app/assets/javascripts/app/app.js b/app/assets/javascripts/app/app.js index d300be7e6..d95852882 100644 --- a/app/assets/javascripts/app/app.js +++ b/app/assets/javascripts/app/app.js @@ -115,6 +115,7 @@ var app = { // so we use Backbone.history.navigate instead. var change = Backbone.history.navigate(link.attr("href").substring(1) ,true); if(change === undefined) { Backbone.history.loadUrl(link.attr("href").substring(1)); } + app.notificationsCollection.fetch(); }); }, diff --git a/spec/javascripts/app/app_spec.js b/spec/javascripts/app/app_spec.js index 06f9a14b0..a1c987596 100644 --- a/spec/javascripts/app/app_spec.js +++ b/spec/javascripts/app/app_spec.js @@ -96,4 +96,39 @@ describe("app", function() { expect(app._changeLocation).toHaveBeenCalledWith("/users/sign_in"); }); }); + + describe("setupBackboneLinks", function() { + it("calls Backbone.history.start", function() { + spyOn(Backbone.history, "start"); + app.setupBackboneLinks(); + expect(Backbone.history.start).toHaveBeenCalledWith({pushState: true}); + }); + + context("when clicking a backbone link", function() { + beforeEach(function() { + app.stream = {basePath: function() { return "/stream"; }}; + app.notificationsCollection = {fetch: $.noop}; + spyOn(Backbone.history, "start"); + this.link = $(""); + spec.content().append(this.link); + app.setupBackboneLinks(); + }); + + afterEach(function() { + app.stream = undefined; + }); + + it("calls Backbone.history.navigate", function() { + spyOn(Backbone.history, "navigate"); + this.link.click(); + expect(Backbone.history.navigate).toHaveBeenCalledWith("backbone-link", true); + }); + + it("fetches new notifications", function() { + spyOn(app.notificationsCollection, "fetch"); + this.link.click(); + expect(app.notificationsCollection.fetch).toHaveBeenCalled(); + }); + }); + }); });