Skip to content

Commit

Permalink
FIX: Hide live-loaded posts from ignored users
Browse files Browse the repository at this point in the history
  • Loading branch information
davidtaylorhq committed Jul 27, 2019
1 parent e9c0fb0 commit 85cdf21
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 11 deletions.
9 changes: 7 additions & 2 deletions app/assets/javascripts/discourse/models/post-stream.js.es6
Original file line number Diff line number Diff line change
Expand Up @@ -609,9 +609,14 @@ export default RestModel.extend({
this.set("loadingLastPost", true);
return this.findPostsByIds([postId])
.then(posts => {
const ignoredUsers = this.get("currentUser.ignored_users");
const ignoredUsers =
Discourse.User.current() &&
Discourse.User.current().get("ignored_users");
posts.forEach(p => {
if (ignoredUsers && ignoredUsers.includes(p.username)) return;
if (ignoredUsers && ignoredUsers.includes(p.username)) {
this.stream.removeObject(postId);
return;
}
this.appendPost(p);
});
})
Expand Down
38 changes: 29 additions & 9 deletions test/javascripts/models/post-stream-test.js.es6
Original file line number Diff line number Diff line change
Expand Up @@ -803,12 +803,14 @@ QUnit.test("comitting and triggerNewPostInStream race condition", assert => {
QUnit.test("triggerNewPostInStream for ignored posts", async assert => {
const postStream = buildStream(280, [1]);
const store = postStream.store;
postStream.currentUser = Discourse.User.create({
username: "eviltrout",
name: "eviltrout",
id: 321,
ignored_users: ["ignoreduser"]
});
Discourse.User.resetCurrent(
Discourse.User.create({
username: "eviltrout",
name: "eviltrout",
id: 321,
ignored_users: ["ignoreduser"]
})
);

postStream.appendPost(store.createRecord("post", { id: 1, post_number: 1 }));

Expand All @@ -829,13 +831,31 @@ QUnit.test("triggerNewPostInStream for ignored posts", async assert => {
.returns(Promise.resolve([post2]));

await postStream.triggerNewPostInStream(101);
assert.equal(postStream.get("posts.length"), 2, "it added the regular post");
assert.equal(
postStream.posts.length,
2,
"it added the regular post to the posts"
);
assert.equal(
postStream.get("stream.length"),
2,
"it added the regular post to the stream"
);

stub.restore();
sandbox.stub(postStream, "findPostsByIds").returns(Promise.resolve([post3]));

postStream.triggerNewPostInStream(102);
assert.equal(postStream.posts.length, 2, "it does not add the ignored post");
await postStream.triggerNewPostInStream(102);
assert.equal(
postStream.posts.length,
2,
"it does not add the ignored post to the posts"
);
assert.equal(
postStream.stream.length,
2,
"it does not add the ignored post to the stream"
);
});

QUnit.test("postsWithPlaceholders", assert => {
Expand Down

0 comments on commit 85cdf21

Please sign in to comment.