From 8e1916c22a54c9c0132bbe1ad54d8799dd1d6bce Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 11 Nov 2024 19:11:02 +0000 Subject: [PATCH] Add test for LastFm.Feed --- test/last_fm/feed_test.exs | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 test/last_fm/feed_test.exs diff --git a/test/last_fm/feed_test.exs b/test/last_fm/feed_test.exs new file mode 100644 index 00000000..710f8407 --- /dev/null +++ b/test/last_fm/feed_test.exs @@ -0,0 +1,50 @@ +defmodule LastFm.FeedTest do + use ExUnit.Case, async: true + + alias LastFm.{Album, Artist, Feed, Track} + + @track_one %Track{ + musicbrainz_id: "5689211e-9afa-3c3e-8e34-63dc0de45ef1", + title: "The Flow", + artist: %Artist{ + musicbrainz_id: "0cf0af1f-20ca-4863-9b24-5f52772f7715", + name: "Anekdoten" + }, + album: %Album{ + musicbrainz_id: "08237599-8fdf-4e2b-a7c9-eb5336f60346", + title: "Vemod" + }, + cover_url: "https://lastfm.freetls.fastly.net/i/u/64s/9741e297b9884a4294624f0f90e14749.jpg", + scrobbled_at_uts: 1_731_318_211, + scrobbled_at_label: "11 Nov 2024, 09:43" + } + @track_two %Track{ + musicbrainz_id: "619cb295-b155-3e35-b65a-396a7cd1fc47", + title: "Wheel", + artist: %Artist{ + musicbrainz_id: "0cf0af1f-20ca-4863-9b24-5f52772f7715", + name: "Anekdoten" + }, + album: %Album{ + musicbrainz_id: "08237599-8fdf-4e2b-a7c9-eb5336f60346", + title: "Vemod" + }, + cover_url: "https://lastfm.freetls.fastly.net/i/u/64s/9741e297b9884a4294624f0f90e14749.jpg", + scrobbled_at_uts: 1_731_318_945, + scrobbled_at_label: "11 Nov 2024, 09:55" + } + + describe "update and broadcast" do + test "it stores the track and broadcasts the update" do + :ok = Feed.subscribe() + :ok = Feed.update([@track_two, @track_one]) + + assert_receive %{tracks: [@track_two, @track_one]} + end + + test "it returns tracks in descending order of scrobble" do + :ok = Feed.update([@track_two, @track_one]) + assert [@track_two, @track_one] == Feed.all() + end + end +end