Skip to content

Commit ac20abe

Browse files
committed
fix: empty bulk create inputs must still return a stream
closes #1784
1 parent 65ca6c1 commit ac20abe

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

lib/ash.ex

+13-9
Original file line numberDiff line numberDiff line change
@@ -2410,19 +2410,23 @@ defmodule Ash do
24102410

24112411
case inputs do
24122412
[] ->
2413-
result = %Ash.BulkResult{status: :success, errors: []}
2413+
if opts[:return_stream?] do
2414+
[]
2415+
else
2416+
result = %Ash.BulkResult{status: :success, errors: []}
24142417

2415-
result =
2416-
if opts[:return_records?] do
2417-
%{result | records: []}
2418+
result =
2419+
if opts[:return_records?] do
2420+
%{result | records: []}
2421+
else
2422+
result
2423+
end
2424+
2425+
if opts[:return_notifications?] do
2426+
%{result | notifications: []}
24182427
else
24192428
result
24202429
end
2421-
2422-
if opts[:return_notifications?] do
2423-
%{result | notifications: []}
2424-
else
2425-
result
24262430
end
24272431

24282432
inputs ->

test/actions/bulk/bulk_create_test.exs

+13
Original file line numberDiff line numberDiff line change
@@ -1200,6 +1200,19 @@ defmodule Ash.Test.Actions.BulkCreateTest do
12001200
end
12011201

12021202
describe "streaming" do
1203+
test "a stream is returned when inputs are empty" do
1204+
assert [] =
1205+
[]
1206+
|> Ash.bulk_create!(
1207+
Post,
1208+
:create_with_policy,
1209+
authorize?: true,
1210+
return_stream?: true,
1211+
return_records?: true
1212+
)
1213+
|> Enum.to_list()
1214+
end
1215+
12031216
test "by default nothing is returned in the stream" do
12041217
org =
12051218
Org

test/actions/update_test.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
defmodule Ash.Test.Actions.UpdateTest do
22
@moduledoc false
33
require Ash.Flags
4-
use ExUnit.Case, async: true
4+
use ExUnit.Case, async: false
55

66
import Ash.Test
77
require Ash.Query

0 commit comments

Comments
 (0)