From 94143010c0afad18569e922fa789a91c2ab50195 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Fri, 17 Apr 2026 16:00:22 +0100 Subject: [PATCH] Fix doubly-wrapped safe tuple in artist bio render --- .../live/artist_live/show.ex | 2 +- .../live/artist_live/show_test.exs | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/music_library_web/live/artist_live/show.ex b/lib/music_library_web/live/artist_live/show.ex index 8315b4a8..51f1fc02 100644 --- a/lib/music_library_web/live/artist_live/show.ex +++ b/lib/music_library_web/live/artist_live/show.ex @@ -739,6 +739,6 @@ defmodule MusicLibraryWeb.ArtistLive.Show do # Wikipedia returns sanitized HTML, so we can skip sanitization. # sobelow_skip ["XSS.Raw"] defp render_bio(biography) do - {Phoenix.HTML.raw(biography.bio_html)} + Phoenix.HTML.raw(biography.bio_html) end end diff --git a/test/music_library_web/live/artist_live/show_test.exs b/test/music_library_web/live/artist_live/show_test.exs index ae20617f..3413568f 100644 --- a/test/music_library_web/live/artist_live/show_test.exs +++ b/test/music_library_web/live/artist_live/show_test.exs @@ -47,6 +47,33 @@ defmodule MusicLibraryWeb.ArtistLive.ShowTest do |> assert_has("dt", "Biography") end + test "renders the Wikipedia biography in the bio sheet", %{ + conn: conn, + artist_musicbrainz_id: artist_musicbrainz_id, + artist_info: artist_info + } do + artist_info + |> Ecto.Changeset.change(wikipedia_data: Wikipedia.Fixtures.article_summary()) + |> MusicLibrary.Repo.update!() + + Req.Test.stub(LastFm.API, fn conn -> + case Map.get(conn.params, "method") do + "artist.getInfo" -> + Req.Test.json(conn, Fixtures.Artist.get_info()) + + "artist.getSimilar" -> + Req.Test.json(conn, Fixtures.Artist.get_similar_artists()) + end + end) + + conn + |> visit(~p"/artists/#{artist_musicbrainz_id}") + |> unwrap(&render_async/1) + |> assert_has("dt", "Biography") + |> assert_has("span", "Wikipedia") + |> assert_has("p", text: "English musician") + end + test "gracefully handles errors in fetching bio and play count", %{ conn: conn, artist_musicbrainz_id: artist_musicbrainz_id