Use css attr selector to test for cover images
This commit is contained in:
@@ -51,6 +51,8 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
session = visit(conn, ~p"/collection")
|
session = visit(conn, ~p"/collection")
|
||||||
|
|
||||||
for record <- expected_present do
|
for record <- expected_present do
|
||||||
|
cover_url = ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
session
|
session
|
||||||
|> assert_has("#records-#{record.id}")
|
|> assert_has("#records-#{record.id}")
|
||||||
|> assert_has("#records-#{record.id} h2", text: escape(record.title))
|
|> assert_has("#records-#{record.id} h2", text: escape(record.title))
|
||||||
@@ -60,23 +62,13 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
|> assert_has("#records-#{record.id} span",
|
|> assert_has("#records-#{record.id} span",
|
||||||
text: Record.format_as_date(record.purchased_at)
|
text: Record.format_as_date(record.purchased_at)
|
||||||
)
|
)
|
||||||
|
|> assert_has("img[src='#{cover_url}']")
|
||||||
|
|
||||||
for artist <- record.artists do
|
for artist <- record.artists do
|
||||||
assert_has(session, "#records-#{record.id} a", text: escape(artist.name))
|
assert_has(session, "#records-#{record.id} a", text: escape(artist.name))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
session
|
|
||||||
|> unwrap(fn collection_view ->
|
|
||||||
html = render(collection_view)
|
|
||||||
|
|
||||||
for record <- expected_present do
|
|
||||||
assert html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
|
||||||
end
|
|
||||||
|
|
||||||
html
|
|
||||||
end)
|
|
||||||
|
|
||||||
for record <- expected_absent do
|
for record <- expected_absent do
|
||||||
refute_has(session, "#records-#{record.id}")
|
refute_has(session, "#records-#{record.id}")
|
||||||
end
|
end
|
||||||
@@ -144,6 +136,8 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
session =
|
session =
|
||||||
visit(conn, ~p"/collection?#{qs}")
|
visit(conn, ~p"/collection?#{qs}")
|
||||||
|
|
||||||
|
cover_url = ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
session
|
session
|
||||||
|> assert_has("#records-#{record.id}")
|
|> assert_has("#records-#{record.id}")
|
||||||
|> assert_has("#records-#{record.id} h2", text: escape(record.title))
|
|> assert_has("#records-#{record.id} h2", text: escape(record.title))
|
||||||
@@ -153,11 +147,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
|> assert_has("#records-#{record.id} span",
|
|> assert_has("#records-#{record.id} span",
|
||||||
text: Record.format_as_date(record.purchased_at)
|
text: Record.format_as_date(record.purchased_at)
|
||||||
)
|
)
|
||||||
|> unwrap(fn collection_view ->
|
|> assert_has("img[src='#{cover_url}']")
|
||||||
html = render(collection_view)
|
|
||||||
assert html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
|
||||||
html
|
|
||||||
end)
|
|
||||||
|
|
||||||
for artist <- record.artists do
|
for artist <- record.artists do
|
||||||
assert_has(session, "#records-#{record.id} a", text: escape(artist.name))
|
assert_has(session, "#records-#{record.id} a", text: escape(artist.name))
|
||||||
@@ -188,6 +178,8 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
visit(conn, ~p"/collection?#{qs}")
|
visit(conn, ~p"/collection?#{qs}")
|
||||||
|
|
||||||
for record <- present do
|
for record <- present do
|
||||||
|
cover_url = ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
session
|
session
|
||||||
|> assert_has("#records-#{record.id}")
|
|> assert_has("#records-#{record.id}")
|
||||||
|> assert_has("#records-#{record.id} h2", text: escape(record.title))
|
|> assert_has("#records-#{record.id} h2", text: escape(record.title))
|
||||||
@@ -197,11 +189,7 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
|> assert_has("#records-#{record.id} span",
|
|> assert_has("#records-#{record.id} span",
|
||||||
text: Record.format_as_date(record.purchased_at)
|
text: Record.format_as_date(record.purchased_at)
|
||||||
)
|
)
|
||||||
|> unwrap(fn collection_view ->
|
|> assert_has("img[src='#{cover_url}']")
|
||||||
html = render(collection_view)
|
|
||||||
assert html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
|
||||||
html
|
|
||||||
end)
|
|
||||||
|
|
||||||
for artist <- record.artists do
|
for artist <- record.artists do
|
||||||
assert_has(session, "#records-#{record.id} a", text: escape(artist.name))
|
assert_has(session, "#records-#{record.id} a", text: escape(artist.name))
|
||||||
@@ -227,14 +215,12 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
|
|
||||||
test "can change the record cover", %{conn: conn} do
|
test "can change the record cover", %{conn: conn} do
|
||||||
record = record(cover_data: File.read!(marbles_cover_fixture()))
|
record = record(cover_data: File.read!(marbles_cover_fixture()))
|
||||||
session = visit(conn, ~p"/collection/#{record.id}/edit")
|
cover_url = ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
session
|
session =
|
||||||
|> unwrap(fn edit_view ->
|
conn
|
||||||
html = render(edit_view)
|
|> visit(~p"/collection/#{record.id}/edit")
|
||||||
assert html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
|> assert_has("img[src='#{cover_url}']")
|
||||||
html
|
|
||||||
end)
|
|
||||||
|
|
||||||
session =
|
session =
|
||||||
session
|
session
|
||||||
@@ -243,16 +229,10 @@ defmodule MusicLibraryWeb.CollectionLive.IndexTest do
|
|||||||
|> assert_has("p", text: "Record updated successfully")
|
|> assert_has("p", text: "Record updated successfully")
|
||||||
|
|
||||||
updated_cover = MusicLibrary.Records.get_cover(record.id)
|
updated_cover = MusicLibrary.Records.get_cover(record.id)
|
||||||
assert updated_cover.cover_hash !== record.cover_hash
|
updated_cover_url = ~p"/covers/#{record.id}?vsn=#{updated_cover.cover_hash}"
|
||||||
|
|
||||||
# We trigger another render to force the list view to update
|
assert updated_cover.cover_hash !== record.cover_hash
|
||||||
# and display the new cover
|
assert_has(session, "img[src='#{updated_cover_url}']")
|
||||||
session
|
|
||||||
|> unwrap(fn collection_view ->
|
|
||||||
html = render(collection_view)
|
|
||||||
assert html =~ ~p"/covers/#{record.id}?vsn=#{updated_cover.cover_hash}"
|
|
||||||
html
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ defmodule MusicLibraryWeb.CollectionLive.ShowTest do
|
|||||||
describe "Show record" do
|
describe "Show record" do
|
||||||
test "it includes all needed information", %{conn: conn} do
|
test "it includes all needed information", %{conn: conn} do
|
||||||
record = record()
|
record = record()
|
||||||
|
cover_url = ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
||||||
|
|
||||||
session =
|
session =
|
||||||
conn
|
conn
|
||||||
@@ -36,11 +37,7 @@ defmodule MusicLibraryWeb.CollectionLive.ShowTest do
|
|||||||
|> assert_has("dd", text: Record.format_as_date(record.purchased_at))
|
|> assert_has("dd", text: Record.format_as_date(record.purchased_at))
|
||||||
|> assert_has("dd", text: Record.format_as_date(record.inserted_at))
|
|> assert_has("dd", text: Record.format_as_date(record.inserted_at))
|
||||||
|> assert_has("dd", text: Record.format_as_date(record.updated_at))
|
|> assert_has("dd", text: Record.format_as_date(record.updated_at))
|
||||||
|> unwrap(fn show_view ->
|
|> assert_has("img[src='#{cover_url}']")
|
||||||
html = render(show_view)
|
|
||||||
assert html =~ ~p"/covers/#{record.id}?vsn=#{record.cover_hash}"
|
|
||||||
html
|
|
||||||
end)
|
|
||||||
|
|
||||||
for artist <- record.artists do
|
for artist <- record.artists do
|
||||||
assert_has(session, "a", text: escape(artist.name))
|
assert_has(session, "a", text: escape(artist.name))
|
||||||
|
|||||||
Reference in New Issue
Block a user