search: refactor to pass in the current user explicitly.

This commit is contained in:
evazion
2022-09-22 04:16:28 -05:00
parent b56b6c554b
commit 88ac91f5f3
82 changed files with 233 additions and 280 deletions

View File

@@ -2,14 +2,14 @@ require 'test_helper'
class ArtistTest < ActiveSupport::TestCase
def assert_artist_found(expected_name, source_url)
artists = Artist.search(url_matches: source_url).to_a
artists = Artist.search({ url_matches: source_url }, current_user: User.anonymous).to_a
assert_equal(1, artists.size)
assert_equal(expected_name, artists.first.name, "Testing URL: #{source_url}")
end
def assert_artist_not_found(source_url)
artists = Artist.search(url_matches: source_url).to_a
artists = Artist.search({ url_matches: source_url }, current_user: User.anonymous).to_a
assert_equal(0, artists.size, "Testing URL: #{source_url}")
end
@@ -455,50 +455,51 @@ class ArtistTest < ActiveSupport::TestCase
end
should "search on its name should return results" do
artist = FactoryBot.create(:artist, :name => "artist")
artist1 = create(:artist, name: "artist")
artist2 = create(:artist, name: "bkub")
assert_not_nil(Artist.search(:name => "artist").first)
assert_not_nil(Artist.search(:name_like => "artist").first)
assert_not_nil(Artist.search(:any_name_matches => "artist").first)
assert_not_nil(Artist.search(:any_name_matches => "/art/").first)
assert_search_equals(artist1, name: "artist")
assert_search_equals(artist1, name_like: "artist")
assert_search_equals(artist1, any_name_matches: "artist")
assert_search_equals(artist1, any_name_matches: "/art/")
end
should "search on other names should return matches" do
artist = FactoryBot.create(:artist, :name => "artist", :other_names_string => "aaa ccc_ddd")
artist = create(:artist, name: "artist", other_names_string: "aaa ccc_ddd")
assert_nil(Artist.search(any_other_name_like: "*artist*").first)
assert_not_nil(Artist.search(any_other_name_like: "*aaa*").first)
assert_not_nil(Artist.search(any_other_name_like: "*ccc_ddd*").first)
assert_not_nil(Artist.search(name: "artist").first)
assert_not_nil(Artist.search(:any_name_matches => "aaa").first)
assert_not_nil(Artist.search(:any_name_matches => "/a/").first)
assert_search_equals([], any_other_name_like: "*artist*")
assert_search_equals(artist, any_other_name_like: "*aaa*")
assert_search_equals(artist, any_other_name_like: "*ccc_ddd*")
assert_search_equals(artist, name: "artist")
assert_search_equals(artist, any_name_matches: "aaa")
assert_search_equals(artist, any_name_matches: "/a/")
end
should "search on group name and return matches" do
cat_or_fish = FactoryBot.create(:artist, :name => "cat_or_fish")
yuu = FactoryBot.create(:artist, :name => "yuu", :group_name => "cat_or_fish")
cat_or_fish = create(:artist, name: "cat_or_fish")
yuu = create(:artist, name: "yuu", group_name: "cat_or_fish")
assert_not_nil(Artist.search(:group_name => "cat_or_fish").first)
assert_not_nil(Artist.search(:any_name_matches => "cat_or_fish").first)
assert_not_nil(Artist.search(:any_name_matches => "/cat/").first)
assert_search_equals(yuu, group_name: "cat_or_fish")
assert_search_equals([yuu, cat_or_fish], any_name_matches: "cat_or_fish")
assert_search_equals([yuu, cat_or_fish], any_name_matches: "/cat/")
end
should "search on url and return matches" do
bkub = FactoryBot.create(:artist, name: "bkub", url_string: "http://bkub.com")
bkub = create(:artist, name: "bkub", url_string: "http://bkub.com")
assert_equal([bkub.id], Artist.search(url_matches: "bkub").map(&:id))
assert_equal([bkub.id], Artist.search(url_matches: "*bkub*").map(&:id))
assert_equal([bkub.id], Artist.search(url_matches: "/rifyu|bkub/").map(&:id))
assert_equal([bkub.id], Artist.search(url_matches: "http://bkub.com/test.jpg").map(&:id))
assert_search_equals(bkub, url_matches: "bkub")
assert_search_equals(bkub, url_matches: "*bkub*")
assert_search_equals(bkub, url_matches: "/rifyu|bkub/")
assert_search_equals(bkub, url_matches: "http://bkub.com/test.jpg")
end
should "search on has_tag and return matches" do
bkub = FactoryBot.create(:artist, name: "bkub")
none = FactoryBot.create(:artist, name: "none")
post = FactoryBot.create(:post, tag_string: "bkub")
bkub = create(:artist, name: "bkub")
none = create(:artist, name: "none")
post = create(:post, tag_string: "bkub")
assert_equal(bkub.id, Artist.search(has_tag: "true").first.id)
assert_equal(none.id, Artist.search(has_tag: "false").first.id)
assert_search_equals(bkub, has_tag: "true")
assert_search_equals(none, has_tag: "false")
end
should "revert to prior versions" do