diff --git a/test/towerops/workers/backup_timeout_worker_test.exs b/test/towerops/workers/backup_timeout_worker_test.exs index 2494d581..3f57e1a2 100644 --- a/test/towerops/workers/backup_timeout_worker_test.exs +++ b/test/towerops/workers/backup_timeout_worker_test.exs @@ -119,19 +119,21 @@ defmodule Towerops.Workers.BackupTimeoutWorkerTest do test "handles boundary case at exactly 5 minutes" do device = insert_device() - # Create a request at exactly 5 minutes (300 seconds) ago + # Create a request at 5 minutes minus 1 second (just inside the cutoff) + # Adding 1 second buffer to prevent flakiness from time advancement during test execution {:ok, boundary_request} = BackupRequests.create_request(device.id, "job_boundary") boundary_request |> Ecto.Changeset.change( - requested_at: DateTime.utc_now() |> DateTime.add(-300, :second) |> DateTime.truncate(:second) + requested_at: + DateTime.utc_now() |> DateTime.add(-300, :second) |> DateTime.add(1, :second) |> DateTime.truncate(:second) ) |> Repo.update!() # Execute the worker assert :ok = BackupTimeoutWorker.perform(%Oban.Job{args: %{}}) - # The cutoff uses `< cutoff`, so exactly 5 minutes should NOT timeout + # The cutoff uses `< cutoff`, so at 5 minutes - 1 second should NOT timeout updated = Repo.reload(boundary_request) assert updated.status == "pending" end