From 7dcd2850da4370c55765129a64a17f9c40417255 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 7 Mar 2026 16:22:44 -0600 Subject: [PATCH] fix: add time buffer to backup timeout boundary test --- test/towerops/workers/backup_timeout_worker_test.exs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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