Files
fizzy/test/models/search_test.rb
T
Mike Dalessio bb2d3a59b5 prefactor: update search to use published cards
We're about to make a change to assert that draft cards are not added
to the search index, and so let's make the intention behind these
tests clear first.
2026-01-23 11:07:43 -05:00

34 lines
1.6 KiB
Ruby

require "test_helper"
class SearchTest < ActiveSupport::TestCase
include SearchTestHelper
test "search" do
# Search cards and comments
card = @board.cards.create!(title: "layout design", creator: @user, status: "published")
comment_card = @board.cards.create!(title: "Some card", creator: @user, status: "published")
comment_card.comments.create!(body: "overflowing text", creator: @user)
results = Search::Record.for(@user.account_id).search("layout", user: @user)
assert results.find { |it| it.card_id == card.id }
results = Search::Record.for(@user.account_id).search("overflowing", user: @user)
assert results.find { |it| it.card_id == comment_card.id && it.searchable_type == "Comment" }
# Don't include inaccessible boards
other_user = User.create!(name: "Other User", account: @account)
inaccessible_board = Board.create!(name: "Inaccessible Board", account: @account, creator: other_user)
accessible_card = @board.cards.create!(title: "searchable content", creator: @user, status: "published")
inaccessible_card = inaccessible_board.cards.create!(title: "searchable content", creator: other_user, status: "published")
results = Search::Record.for(@user.account_id).search("searchable", user: @user)
assert results.find { |it| it.card_id == accessible_card.id }
assert_not results.find { |it| it.card_id == inaccessible_card.id }
# Empty board_ids returns no results
user_without_access = User.create!(name: "No Access User", account: @account)
results = Search::Record.for(user_without_access.account_id).search("anything", user: user_without_access)
assert_empty results
end
end