From 3819afca4dc6077ba361919708b17f9ada400b3f Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Fri, 6 Mar 2026 08:53:25 +0000 Subject: [PATCH] Extract fixture --- test/music_library/scrobble_rules_test.exs | 26 +---------------- .../fixtures/scrobbled_tracks_fixtures.ex | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/test/music_library/scrobble_rules_test.exs b/test/music_library/scrobble_rules_test.exs index d7a9d0fa..0dc41843 100644 --- a/test/music_library/scrobble_rules_test.exs +++ b/test/music_library/scrobble_rules_test.exs @@ -2,6 +2,7 @@ defmodule MusicLibrary.ScrobbleRulesTest do use MusicLibrary.DataCase import MusicLibrary.ScrobbleRulesFixtures + import MusicLibrary.ScrobbledTracksFixtures alias LastFm.Track alias MusicLibrary.ScrobbleRules @@ -26,31 +27,6 @@ defmodule MusicLibrary.ScrobbleRulesTest do @invalid_attrs %{type: nil, match_value: nil, target_musicbrainz_id: nil} - def scrobbled_track_fixture(attrs \\ %{}) do - default_attrs = %{ - scrobbled_at_uts: System.system_time(:second), - musicbrainz_id: "track-mbid-12345", - title: "Breathe", - cover_url: "http://example.com/cover.jpg", - scrobbled_at_label: "01 Jan 2023, 12:00", - artist: %{ - musicbrainz_id: "", - name: "Pink Floyd" - }, - album: %{ - musicbrainz_id: "", - title: "Dark Side of the Moon" - }, - last_fm_data: %{} - } - - attrs = Enum.into(attrs, default_attrs) - - %Track{} - |> Track.changeset(attrs) - |> Repo.insert!() - end - test "list_scrobble_rules/0 returns all scrobble_rules" do scrobble_rule = scrobble_rule_fixture() assert ScrobbleRules.list_scrobble_rules() == [scrobble_rule] diff --git a/test/support/fixtures/scrobbled_tracks_fixtures.ex b/test/support/fixtures/scrobbled_tracks_fixtures.ex index f8ec858f..8b3bec7c 100644 --- a/test/support/fixtures/scrobbled_tracks_fixtures.ex +++ b/test/support/fixtures/scrobbled_tracks_fixtures.ex @@ -41,6 +41,34 @@ defmodule MusicLibrary.ScrobbledTracksFixtures do track end + @doc """ + Generate a scrobbled track with nested artist/album maps. + """ + def scrobbled_track_fixture(attrs \\ %{}) do + default_attrs = %{ + scrobbled_at_uts: System.system_time(:second), + musicbrainz_id: "track-mbid-12345", + title: "Breathe", + cover_url: "http://example.com/cover.jpg", + scrobbled_at_label: "01 Jan 2023, 12:00", + artist: %{ + musicbrainz_id: "", + name: "Pink Floyd" + }, + album: %{ + musicbrainz_id: "", + title: "Dark Side of the Moon" + }, + last_fm_data: %{} + } + + attrs = Enum.into(attrs, default_attrs) + + %Track{} + |> Track.changeset(attrs) + |> Repo.insert!() + end + @doc """ Generate multiple scrobbled tracks for testing pagination and search. """