diff options
author | Maksim Pechnikov <parallel588@gmail.com> | 2020-09-22 21:42:10 +0300 |
---|---|---|
committer | Maksim Pechnikov <parallel588@gmail.com> | 2020-09-22 21:42:10 +0300 |
commit | 72d2b34d3bf47705ad5298f2ce2c6bf48a0a8e82 (patch) | |
tree | df79362a63e25b87c492c8568e52c029a7ee7542 /test/repo_test.exs | |
parent | 489a107cf449a10c7f6ac9a4b8d4a7f9f7314c5c (diff) | |
parent | 02f12ec6253093d8bedaf84d78d0f7e533745e1b (diff) | |
download | pleroma-72d2b34d3bf47705ad5298f2ce2c6bf48a0a8e82.tar.gz pleroma-72d2b34d3bf47705ad5298f2ce2c6bf48a0a8e82.zip |
Merge branch 'develop' into issue/1975
Diffstat (limited to 'test/repo_test.exs')
-rw-r--r-- | test/repo_test.exs | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/test/repo_test.exs b/test/repo_test.exs index 92e827c95..155791be2 100644 --- a/test/repo_test.exs +++ b/test/repo_test.exs @@ -37,7 +37,9 @@ defmodule Pleroma.RepoTest do test "get one-to-many assoc from repo" do user = insert(:user) - notification = refresh_record(insert(:notification, user: user)) + + notification = + refresh_record(insert(:notification, user: user, activity: insert(:note_activity))) assert Repo.get_assoc(user, :notifications) == {:ok, [notification]} end @@ -47,4 +49,32 @@ defmodule Pleroma.RepoTest do assert Repo.get_assoc(token, :user) == {:error, :not_found} end end + + describe "chunk_stream/3" do + test "fetch records one-by-one" do + users = insert_list(50, :user) + + {fetch_users, 50} = + from(t in User) + |> Repo.chunk_stream(5) + |> Enum.reduce({[], 0}, fn %User{} = user, {acc, count} -> + {acc ++ [user], count + 1} + end) + + assert users == fetch_users + end + + test "fetch records in bulk" do + users = insert_list(50, :user) + + {fetch_users, 10} = + from(t in User) + |> Repo.chunk_stream(5, :batches) + |> Enum.reduce({[], 0}, fn users, {acc, count} -> + {acc ++ users, count + 1} + end) + + assert users == fetch_users + end + end end |