Skip to content

Commit efe1b77

Browse files
authored
Solution: Support options configuration for unnamed job (#611)
* Solution: Support options configuration for unnamed job * remove keyword check
1 parent 6cb0c7b commit efe1b77

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

lib/quantum/normalizer.ex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ defmodule Quantum.Normalizer do
5151
normalize_options(base, %{schedule: schedule, task: task})
5252
end
5353

54+
def normalize(%Job{} = base, {schedule, task, opts}) when is_list(opts) do
55+
opts =
56+
Enum.into(opts, %{})
57+
|> Map.merge(%{schedule: schedule, task: task})
58+
59+
normalize_options(base, opts)
60+
end
61+
5462
def normalize(%Job{} = _base, %Job{} = job) do
5563
job
5664
end

test/quantum/normalizer_test.exs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,13 @@ defmodule Quantum.NormalizerTest do
143143
test "unnamed job as tuple with arguments" do
144144
schedule = ~e[* * * * *]
145145
task = {MyModule, :my_method, [1, 2, 3]}
146+
opts = [state: :inactive]
146147

147-
job = {"* * * * *", task}
148+
job = {"* * * * *", task, opts}
149+
150+
assert %{schedule: ^schedule, task: ^task, name: name, state: :inactive} =
151+
normalize(Scheduler.new_job(), job)
148152

149-
assert %{schedule: ^schedule, task: ^task, name: name} = normalize(Scheduler.new_job(), job)
150153
assert is_reference(name)
151154
end
152155

0 commit comments

Comments
 (0)