Improve relationship UI handling (#42)

* Added tabbed view; improved relationships for media profile

* Adds new maybe_limit method for queries

* Improves UI for media items, associated tasks
This commit is contained in:
Kieran
2024-02-29 15:35:51 -08:00
committed by GitHub
parent 5b29f5036a
commit b54e69c609
16 changed files with 292 additions and 127 deletions
+17
View File
@@ -64,6 +64,14 @@ defmodule Pinchflat.MediaTest do
assert Media.list_pending_media_items_for(source) == []
end
test "optionally accepts a limit" do
source = source_fixture()
media_item = media_item_fixture(%{source_id: source.id, media_filepath: nil})
assert Media.list_pending_media_items_for(source, limit: 1) == [media_item]
assert Media.list_pending_media_items_for(source, limit: 0) == []
end
end
describe "list_pending_media_items_for/1 when testing shorts" do
@@ -196,6 +204,15 @@ defmodule Pinchflat.MediaTest do
assert Media.list_downloaded_media_items_for(source) == [media_item]
end
test "optionally accepts a limit" do
source = source_fixture()
_media_item = media_item_fixture(%{source_id: source.id, media_filepath: nil})
media_item = media_item_fixture(%{source_id: source.id, media_filepath: "/video/#{Faker.File.file_name(:video)}"})
assert Media.list_downloaded_media_items_for(source, limit: 1) == [media_item]
assert Media.list_downloaded_media_items_for(source, limit: 0) == []
end
end
describe "search/1" do
+29
View File
@@ -1,6 +1,9 @@
defmodule Pinchflat.RepoTest do
use Pinchflat.DataCase
import Pinchflat.ProfilesFixtures
alias Pinchflat.Repo
alias Pinchflat.Profiles.MediaProfile
alias Pinchflat.JobFixtures.TestJobWorker
describe "insert_unique_job/1" do
@@ -23,4 +26,30 @@ defmodule Pinchflat.RepoTest do
assert {:error, _} = Pinchflat.Repo.insert_unique_job(%Ecto.Changeset{})
end
end
describe "maybe_limit/2" do
test "applies a limit if provided" do
media_profile_fixture()
media_profile_fixture()
result =
MediaProfile
|> Repo.maybe_limit(1)
|> Repo.aggregate(:count, :id)
assert result == 1
end
test "does not apply a limit if not provided" do
media_profile_fixture()
media_profile_fixture()
result =
MediaProfile
|> Repo.maybe_limit(nil)
|> Repo.aggregate(:count, :id)
assert result == 2
end
end
end