Remove mox in favour of built-in Req stubs

This commit is contained in:
Claudio Ortolina
2025-02-28 16:38:11 +00:00
parent 8aa283cb84
commit a218942110
16 changed files with 844 additions and 195 deletions
+15 -12
View File
@@ -1,22 +1,22 @@
defmodule MusicBrainzTest do
use ExUnit.Case, async: true
alias MusicBrainz.{APIMock, ReleaseSearchResult}
alias MusicBrainz.ReleaseGroupSearchResult
import MusicBrainz.Fixtures.Release
import MusicBrainz.Fixtures.ReleaseGroup
import Mox
setup :verify_on_exit!
describe "search_release_group/2" do
test "it returns results with correct limit and offset" do
mock_results = release_group_search_results()
results = release_group_search_results()
expect(APIMock, :search_release_group, fn "Marillion", [limit: 20, offset: 10], _config ->
{:ok, mock_results}
expected_results =
Enum.map(results["release-groups"], &ReleaseGroupSearchResult.from_api_response/1)
Req.Test.stub(MusicBrainz.API, fn conn ->
Req.Test.json(conn, results)
end)
assert {:ok, mock_results} ==
assert {:ok, expected_results} ==
MusicBrainz.search_release_group("Marillion", limit: 20, offset: 10)
end
end
@@ -24,13 +24,16 @@ defmodule MusicBrainzTest do
describe "search_release_by_barcode/1" do
test "it returns releases belonging to the same release group" do
barcode = "5052205070023"
releases = releases(:queen_greatest_hits)
expect(APIMock, :search_release_by_barcode, fn ^barcode, _config ->
{:ok, Enum.map(releases, &ReleaseSearchResult.from_api_response/1)}
releases =
releases(:queen_greatest_hits)
Req.Test.stub(MusicBrainz.API, fn conn ->
Req.Test.json(conn, releases)
end)
assert {:ok, results} = MusicBrainz.search_release_by_barcode(barcode)
assert {:ok, results} =
MusicBrainz.search_release_by_barcode(barcode)
assert Enum.all?(results, fn result ->
result.release_group.id == "69ce61c8-127f-3809-95d8-62fdf3ae1347" &&