live_beats/test/support/fixtures/media_library_fixtures.ex
2022-01-31 08:41:34 -05:00

37 lines
923 B
Elixir

defmodule LiveBeats.MediaLibraryFixtures do
@moduledoc """
This module defines test helpers for creating
entities via the `LiveBeats.MediaLibrary` context.
"""
alias LiveBeats.MediaLibrary.Song
@doc """
Generate a song.
"""
def song_fixture(attrs \\ %{}) do
{:ok, server_ip} = EctoNetwork.INET.cast(LiveBeats.config([:files, :server_ip]))
{:ok, song} =
struct!(
Song,
Enum.into(attrs, %{
album_artist: "some album_artist",
artist: "some artist",
date_recorded: ~N[2021-10-26 20:11:00],
date_released: ~N[2021-10-26 20:11:00],
duration: 42,
title: "some title",
mp3_url: "//example.com/mp3.mp3",
mp3_filename: "mp3.mp3",
mp3_filepath: "/data/mp3.mp3",
server_ip: server_ip,
status: :stopped
})
)
|> LiveBeats.Repo.insert()
song
end
end