Skip to content

Commit 703b3ed

Browse files
committed
Handle insert_all with streams for inline engine
The inline engine's `insert_all_jobs` callback incorrectly expected changesets to always be a list rather than a stream. Closes #1151
1 parent cc89021 commit 703b3ed

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/oban/engines/inline.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ defmodule Oban.Engines.Inline do
7676
defp expand(value), do: expand(value, %{})
7777
defp expand(fun, changes) when is_function(fun, 1), do: expand(fun.(changes), changes)
7878
defp expand(%{changesets: changesets}, _), do: expand(changesets, %{})
79-
defp expand(changesets, _) when is_list(changesets), do: changesets
79+
defp expand(changesets, _), do: changesets
8080

8181
# Execution Helpers
8282

test/oban/engines/inline_test.exs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ defmodule Oban.Engines.InlineTest do
3737
end
3838
end
3939

40+
test "executing multiple jobs inserted from a stream" do
41+
name = start_supervised_oban!(testing: :inline)
42+
43+
stream = Stream.map(1..2, &Worker.new(%{ref: &1, action: "OK"}))
44+
45+
assert [_job_1, _job_2] = Oban.insert_all(name, stream)
46+
47+
assert_receive {:ok, 1}
48+
assert_receive {:ok, 2}
49+
end
50+
4051
test "executing single jobs inserted within a multi" do
4152
name = start_supervised_oban!(testing: :inline)
4253

0 commit comments

Comments
 (0)