From d3e6baf963be17376b7b46a6e9d9d801fba259a7 Mon Sep 17 00:00:00 2001 From: Parker Selbert Date: Tue, 25 Jun 2024 13:50:55 -0500 Subject: [PATCH] Include all fields in Job.t/0 unique spec The unique spec lacked `keys` and `timestamp` fields. --- lib/oban/job.ex | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/oban/job.ex b/lib/oban/job.ex index 86a1ae67..2353f4ee 100644 --- a/lib/oban/job.ex +++ b/lib/oban/job.ex @@ -45,12 +45,14 @@ defmodule Oban.Job do | :scheduled ] + @type unique_timestamp :: :inserted_at | :scheduled_at + @type unique_option :: {:fields, [unique_field()]} | {:keys, [atom()]} | {:period, unique_period()} | {:states, [unique_state()]} - | {:timestamp, :inserted_at | :scheduled_at} + | {:timestamp, unique_timestamp()} @type replace_option :: [ :args @@ -111,7 +113,14 @@ defmodule Oban.Job do conflict?: boolean(), replace: [replace_option() | replace_by_state_option()] | nil, unique: - %{fields: [unique_field()], period: unique_period(), states: [unique_state()]} | nil, + %{ + fields: [unique_field()], + keys: [atom()], + period: unique_period(), + states: [unique_state()], + timestamp: unique_timestamp() + } + | nil, unsaved_error: %{ kind: Exception.kind(),