diff --git a/app/models/filter.rb b/app/models/filter.rb index f579c6bf0..7a398d03d 100644 --- a/app/models/filter.rb +++ b/app/models/filter.rb @@ -36,7 +36,7 @@ class Filter < ApplicationRecord result.mentioning(term, user: creator) end - result + result.distinct end end diff --git a/test/models/filter/search_test.rb b/test/models/filter/search_test.rb new file mode 100644 index 000000000..6adeebacb --- /dev/null +++ b/test/models/filter/search_test.rb @@ -0,0 +1,19 @@ +require "test_helper" + +class Filter::SearchTest < ActiveSupport::TestCase + include SearchTestHelper + + test "deduplicate multiple results" do + user = users(:david) + + board = boards(:writebook) + card = board.cards.create!(title: "Duplicate results test", description: "Have you had any haggis today?", creator: user) + card.published! + card.comments.create(body: "I hate haggis.", creator: user) + card.comments.create(body: "I love haggis.", creator: user) + + filter = user.filters.new(terms: [ "haggis" ], indexed_by: "all", sorted_by: "latest") + + assert_equal [ card ], filter.cards.to_a + end +end