From d138c824fffd8344123d8cbf06f0548c16028d7d Mon Sep 17 00:00:00 2001
From: Sashi Kumar Kumaresan <skumar@gitlab.com>
Date: Tue, 17 Dec 2024 07:07:10 +0000
Subject: [PATCH] Fix Random.rand for zero values in RuleScheduleService

This change fixes an error in RuleScheduleService
when time_window value is 0.

EE: true
Changelog: fixed
---
 .../models/security/orchestration_policy_rule_schedule.rb   | 6 +++++-
 .../security/orchestration_policy_rule_schedule_spec.rb     | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ee/app/models/security/orchestration_policy_rule_schedule.rb b/ee/app/models/security/orchestration_policy_rule_schedule.rb
index c023e202a8922..79c6d08f16381 100644
--- a/ee/app/models/security/orchestration_policy_rule_schedule.rb
+++ b/ee/app/models/security/orchestration_policy_rule_schedule.rb
@@ -81,7 +81,11 @@ def worker_cron_expression
     end
 
     def time_window
-      policy&.dig(:rules, rule_index, :time_window, :value).to_i
+      value = policy&.dig(:rules, rule_index, :time_window, :value)
+
+      return unless value
+
+      value.to_i
     end
   end
 end
diff --git a/ee/spec/models/security/orchestration_policy_rule_schedule_spec.rb b/ee/spec/models/security/orchestration_policy_rule_schedule_spec.rb
index 7dabbeb74485a..b9f20e50932c3 100644
--- a/ee/spec/models/security/orchestration_policy_rule_schedule_spec.rb
+++ b/ee/spec/models/security/orchestration_policy_rule_schedule_spec.rb
@@ -403,7 +403,7 @@
         [{ type: 'schedule', branches: %w[production], cadence: '*/20 * * * *' }]
       end
 
-      it { is_expected.to be_zero }
+      it { is_expected.to be_nil }
     end
 
     context 'when time_window is defined in the rule' do
-- 
GitLab