diff --git a/lib/music_library_web/live/scrobbled_tracks_live/form.ex b/lib/music_library_web/live/scrobbled_tracks_live/form.ex
index a7878540..796e4a7c 100644
--- a/lib/music_library_web/live/scrobbled_tracks_live/form.ex
+++ b/lib/music_library_web/live/scrobbled_tracks_live/form.ex
@@ -35,6 +35,11 @@ defmodule MusicLibraryWeb.ScrobbledTracksLive.Form do
label={gettext("Artist Name")}
placeholder={gettext("Artist name")}
/>
+ <.input
+ class="font-mono"
+ field={artist[:musicbrainz_id]}
+ label={gettext("Artist MusicBrainz ID")}
+ />
<.inputs_for :let={album} field={@form[:album]}>
@@ -44,6 +49,11 @@ defmodule MusicLibraryWeb.ScrobbledTracksLive.Form do
label={gettext("Album Title")}
placeholder={gettext("Album name")}
/>
+ <.input
+ class="font-mono"
+ field={album[:musicbrainz_id]}
+ label={gettext("Album MusicBrainz ID")}
+ />
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index cf54d31f..822ca7a7 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -1657,3 +1657,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Show releases included in the record"
msgstr ""
+
+#: lib/music_library_web/live/scrobbled_tracks_live/form.ex
+#, elixir-autogen, elixir-format
+msgid "Album MusicBrainz ID"
+msgstr ""
+
+#: lib/music_library_web/live/scrobbled_tracks_live/form.ex
+#, elixir-autogen, elixir-format
+msgid "Artist MusicBrainz ID"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index 62c0f11b..16c8a14b 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -1657,3 +1657,13 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Show releases included in the record"
msgstr ""
+
+#: lib/music_library_web/live/scrobbled_tracks_live/form.ex
+#, elixir-autogen, elixir-format
+msgid "Album MusicBrainz ID"
+msgstr ""
+
+#: lib/music_library_web/live/scrobbled_tracks_live/form.ex
+#, elixir-autogen, elixir-format
+msgid "Artist MusicBrainz ID"
+msgstr ""
diff --git a/test/music_library_web/live/scrobbled_tracks_live/index_test.exs b/test/music_library_web/live/scrobbled_tracks_live/index_test.exs
index ca810128..431e5162 100644
--- a/test/music_library_web/live/scrobbled_tracks_live/index_test.exs
+++ b/test/music_library_web/live/scrobbled_tracks_live/index_test.exs
@@ -10,8 +10,8 @@ defmodule MusicLibraryWeb.ScrobbledTracksLiveTest do
@invalid_track_attrs %{title: "", artist: %{name: ""}, album: %{title: ""}}
@valid_track_attrs %{
title: "Updated Track Title",
- artist: %{name: "Updated Artist"},
- album: %{title: "Updated Album"},
+ artist: %{name: "Updated Artist", musicbrainz_id: "9a5cf59b-5da0-4021-b885-b6b78dd6886e"},
+ album: %{title: "Updated Album", musicbrainz_id: "9a5cf59b-5da0-4021-b885-b6b78dd6886f"},
cover_url: "https://example.com/updated-cover.jpg"
}
@@ -114,7 +114,9 @@ defmodule MusicLibraryWeb.ScrobbledTracksLiveTest do
session
|> fill_in("Track Title", with: @valid_track_attrs.title)
|> fill_in("Artist Name", with: @valid_track_attrs.artist.name)
+ |> fill_in("Artist MusicBrainz ID", with: @valid_track_attrs.artist.musicbrainz_id)
|> fill_in("Album Title", with: @valid_track_attrs.album.title)
+ |> fill_in("Album MusicBrainz ID", with: @valid_track_attrs.album.musicbrainz_id)
|> fill_in("Cover Image URL (optional)", with: @valid_track_attrs.cover_url)
|> click_button("Update Track")
|> assert_has("p", text: "Track updated successfully")