Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.md1
-rw-r--r--app/models/status_message.rb2
-rw-r--r--spec/models/status_message_spec.rb8
3 files changed, 10 insertions, 1 deletions
diff --git a/Changelog.md b/Changelog.md
index e96ed8bed..a1c9a5496 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -8,6 +8,7 @@
* Prevent duplicate mention notifications when the post is received twice [#7721](https://github.com/diaspora/diaspora/pull/7721)
* Fixed a compatiblitiy issue with non-diaspora\* webfingers [#7718](https://github.com/diaspora/diaspora/pull/7718)
* Don't retry federation for accounts without a valid public key [#7717](https://github.com/diaspora/diaspora/pull/7717)
+* Fix stream generation for tagged posts with many followed tags [#7715](https://github.com/diaspora/diaspora/pull/7715)
## Features
* Add basic html5 audio/video embedding support [#6418](https://github.com/diaspora/diaspora/pull/6418)
diff --git a/app/models/status_message.rb b/app/models/status_message.rb
index a44afca90..17d267797 100644
--- a/app/models/status_message.rb
+++ b/app/models/status_message.rb
@@ -46,7 +46,7 @@ class StatusMessage < Post
end
def self.public_tag_stream(tag_ids)
- all_public.tag_stream(tag_ids)
+ all_public.select("DISTINCT #{table_name}.*").tag_stream(tag_ids)
end
def self.tag_stream(tag_ids)
diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb
index 8dfca6f67..bd9d809ce 100644
--- a/spec/models/status_message_spec.rb
+++ b/spec/models/status_message_spec.rb
@@ -51,6 +51,14 @@ describe StatusMessage, type: :model do
it "returns public status messages tagged with the tag" do
expect(StatusMessage.public_tag_stream([@tag_id])).to eq([@status_message_1])
end
+
+ it "returns a post with two tags only once" do
+ status_message = FactoryGirl.create(:status_message, text: "#hashtag #test", public: true)
+ test_tag_id = ActsAsTaggableOn::Tag.where(name: "test").first.id
+
+ expect(StatusMessage.public_tag_stream([@tag_id, test_tag_id]))
+ .to match_array([@status_message_1, status_message])
+ end
end
describe ".user_tag_stream" do