mirror of
https://github.com/fly-apps/live_beats.git
synced 2024-11-21 23:50:59 +00:00
separate describe block for expire_songs_older_than/2
This commit is contained in:
parent
1ec2254b6e
commit
2c709ffe2a
1 changed files with 33 additions and 31 deletions
|
@ -3,13 +3,11 @@ defmodule LiveBeats.MediaLibraryTest do
|
||||||
|
|
||||||
alias LiveBeats.MediaLibrary
|
alias LiveBeats.MediaLibrary
|
||||||
alias LiveBeats.Accounts
|
alias LiveBeats.Accounts
|
||||||
|
alias LiveBeats.MediaLibrary.Song
|
||||||
|
import LiveBeats.AccountsFixtures
|
||||||
|
import LiveBeats.MediaLibraryFixtures
|
||||||
|
|
||||||
describe "songs" do
|
describe "songs" do
|
||||||
alias LiveBeats.MediaLibrary.Song
|
|
||||||
|
|
||||||
import LiveBeats.AccountsFixtures
|
|
||||||
import LiveBeats.MediaLibraryFixtures
|
|
||||||
|
|
||||||
@invalid_attrs %{
|
@invalid_attrs %{
|
||||||
album_artist: nil,
|
album_artist: nil,
|
||||||
artist: nil,
|
artist: nil,
|
||||||
|
@ -69,14 +67,21 @@ defmodule LiveBeats.MediaLibraryTest do
|
||||||
song = song_fixture()
|
song = song_fixture()
|
||||||
assert %Ecto.Changeset{} = MediaLibrary.change_song(song)
|
assert %Ecto.Changeset{} = MediaLibrary.change_song(song)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
test "expire_songs_older_than/2 deletes the song expired before the required interval" do
|
describe "expire_songs_older_than/2" do
|
||||||
user = user_fixture()
|
setup do
|
||||||
today = DateTime.utc_now()
|
today = DateTime.utc_now()
|
||||||
|
|
||||||
three_months_ago = add_n_months(today, -3)
|
creation_dates = Enum.map([-1, -3, -4], &add_n_months(today, &1))
|
||||||
four_months_ago = add_n_months(today, -4)
|
|
||||||
one_month_ago = add_n_months(today, -1)
|
%{creation_dates: creation_dates}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "deletes the song expired before the required interval", %{
|
||||||
|
creation_dates: [one_month_ago, three_months_ago, four_months_ago]
|
||||||
|
} do
|
||||||
|
user = user_fixture()
|
||||||
|
|
||||||
expired_song_1 =
|
expired_song_1 =
|
||||||
song_fixture(user_id: user.id, title: "song1", inserted_at: four_months_ago)
|
song_fixture(user_id: user.id, title: "song1", inserted_at: four_months_ago)
|
||||||
|
@ -93,25 +98,22 @@ defmodule LiveBeats.MediaLibraryTest do
|
||||||
assert active_song == MediaLibrary.get_song!(active_song.id)
|
assert active_song == MediaLibrary.get_song!(active_song.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "Users song_count is decremented when expire_songs_older_than/2 is called and user songs are deleted" do
|
test "Users song_count is decremented when user songs are deleted", %{
|
||||||
|
creation_dates: creation_dates
|
||||||
|
} do
|
||||||
user = user_fixture()
|
user = user_fixture()
|
||||||
today = DateTime.utc_now()
|
|
||||||
|
|
||||||
three_months_ago = add_n_months(today, -3)
|
|
||||||
four_months_ago = add_n_months(today, -4)
|
|
||||||
one_month_ago = add_n_months(today, -1)
|
|
||||||
|
|
||||||
creation_dates = [three_months_ago, four_months_ago, one_month_ago]
|
|
||||||
|
|
||||||
songs_changesets =
|
songs_changesets =
|
||||||
["1", "2", "3"]
|
["1", "2", "3"]
|
||||||
|> Enum.reduce(%{}, fn song_number, acc ->
|
|> Enum.reduce(%{}, fn song_number, acc ->
|
||||||
song_changeset = Song.changeset(%Song{}, %{title: "song#{song_number}", artist: "artist_one"})
|
song_changeset =
|
||||||
Map.put_new(acc, song_number, song_changeset)
|
Song.changeset(%Song{}, %{title: "song#{song_number}", artist: "artist_one"})
|
||||||
end)
|
|
||||||
|
|
||||||
|
Map.put_new(acc, song_number, song_changeset)
|
||||||
|
end)
|
||||||
|
|
||||||
assert {:ok, results} = MediaLibrary.import_songs(user, songs_changesets, fn one, two -> {one, two} end)
|
assert {:ok, results} =
|
||||||
|
MediaLibrary.import_songs(user, songs_changesets, fn one, two -> {one, two} end)
|
||||||
|
|
||||||
assert Accounts.get_user(user.id).songs_count == 3
|
assert Accounts.get_user(user.id).songs_count == 3
|
||||||
|
|
||||||
|
@ -127,14 +129,14 @@ defmodule LiveBeats.MediaLibraryTest do
|
||||||
|
|
||||||
assert Accounts.get_user(user.id).songs_count == 1
|
assert Accounts.get_user(user.id).songs_count == 1
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
defp add_n_months(datetime, n) do
|
defp add_n_months(datetime, n) do
|
||||||
seconds = 30 * (60 * 60 * 24) * n
|
seconds = 30 * (60 * 60 * 24) * n
|
||||||
|
|
||||||
datetime
|
datetime
|
||||||
|> DateTime.add(seconds, :second)
|
|> DateTime.add(seconds, :second)
|
||||||
|> DateTime.to_naive()
|
|> DateTime.to_naive()
|
||||||
|> NaiveDateTime.truncate(:second)
|
|> NaiveDateTime.truncate(:second)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue