Add tests for Records.search_records_count/2

This commit is contained in:
Claudio Ortolina
2024-11-11 14:19:57 +00:00
parent bcf555ea4c
commit f4ae1f0fc9
+37 -1
View File
@@ -17,7 +17,8 @@ defmodule MusicLibrary.RecordsTest do
%{records: records}
end
# using record ids as records contain autogenerated fields which are not loaded when the record is created
# when searching we do not return all record fields (e.g. cover data)
# so we rely on record ids to compare results
defp search(query, limit, offset) do
Record
|> Records.search_records(query, limit: limit, offset: offset)
@@ -60,4 +61,39 @@ defmodule MusicLibrary.RecordsTest do
assert [libertad.id] == search("mbid:#{airbag_au_mbid}", 10, 0)
end
end
describe "search_records_count/2" do
setup [:create_records]
test "untagged search" do
assert 2 == Records.search_records_count(Record, "brave")
end
test "tagged search - album" do
assert 1 == Records.search_records_count(Record, ~s(album:"Brave \(Live\)"))
end
test "tagged search - artist" do
assert 2 == Records.search_records_count(Record, "artist:airbag")
assert 1 == Records.search_records_count(Record, ~s(artist:"airbag \(AU\)"))
end
test "tagged search - format" do
assert 1 == Records.search_records_count(Record, "brave format:cd")
end
test "tagged search - type" do
assert 1 == Records.search_records_count(Record, "brave type:live")
end
test "tagged search - mbid", %{records: [_, _, _, greatest_show_on_earth, libertad]} do
[airbag_mbid] = Enum.map(greatest_show_on_earth.artists, fn a -> a.musicbrainz_id end)
[airbag_au_mbid] = Enum.map(libertad.artists, fn a -> a.musicbrainz_id end)
assert 1 ==
Records.search_records_count(Record, "mbid:#{airbag_mbid}")
assert 1 == Records.search_records_count(Record, "mbid:#{airbag_au_mbid}")
end
end
end