Many updates
This commit is contained in:
@@ -4,18 +4,20 @@ require "test_helper"
|
||||
|
||||
class ExpiredRulesCleanupJobTest < ActiveJob::TestCase
|
||||
test "disables expired rules" do
|
||||
expired_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
expired_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.0.0.0/8" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: expired_range,
|
||||
expires_at: 1.hour.ago,
|
||||
enabled: true
|
||||
)
|
||||
|
||||
active_range = NetworkRange.create!(cidr: "192.168.0.0/16")
|
||||
active_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "192.168.0.0/16" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: active_range,
|
||||
expires_at: 1.hour.from_now,
|
||||
enabled: true
|
||||
)
|
||||
@@ -28,10 +30,11 @@ class ExpiredRulesCleanupJobTest < ActiveJob::TestCase
|
||||
end
|
||||
|
||||
test "does not affect rules without expiration" do
|
||||
permanent_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
permanent_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.0.0.0/8" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: permanent_range,
|
||||
expires_at: nil,
|
||||
enabled: true
|
||||
)
|
||||
@@ -42,10 +45,11 @@ class ExpiredRulesCleanupJobTest < ActiveJob::TestCase
|
||||
end
|
||||
|
||||
test "does not affect already disabled rules" do
|
||||
disabled_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
disabled_expired_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.0.0.0/8" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: disabled_range,
|
||||
expires_at: 1.hour.ago,
|
||||
enabled: false
|
||||
)
|
||||
@@ -57,10 +61,11 @@ class ExpiredRulesCleanupJobTest < ActiveJob::TestCase
|
||||
end
|
||||
|
||||
test "updates updated_at timestamp when disabling" do
|
||||
expired_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
expired_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.0.0.0/8" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: expired_range,
|
||||
expires_at: 1.hour.ago,
|
||||
enabled: true
|
||||
)
|
||||
@@ -75,18 +80,20 @@ class ExpiredRulesCleanupJobTest < ActiveJob::TestCase
|
||||
end
|
||||
|
||||
test "deletes old disabled rules when running at 1am" do
|
||||
old_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
old_disabled_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.0.0.0/8" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: old_range,
|
||||
enabled: false
|
||||
)
|
||||
old_disabled_rule.update_column(:updated_at, 31.days.ago)
|
||||
|
||||
recent_range = NetworkRange.create!(cidr: "192.168.0.0/16")
|
||||
recent_disabled_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "192.168.0.0/16" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: recent_range,
|
||||
enabled: false
|
||||
)
|
||||
|
||||
@@ -99,10 +106,11 @@ class ExpiredRulesCleanupJobTest < ActiveJob::TestCase
|
||||
end
|
||||
|
||||
test "does not delete old rules when not running at 1am" do
|
||||
old_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
old_disabled_rule = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.0.0.0/8" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: old_range,
|
||||
enabled: false
|
||||
)
|
||||
old_disabled_rule.update_column(:updated_at, 31.days.ago)
|
||||
@@ -116,10 +124,11 @@ class ExpiredRulesCleanupJobTest < ActiveJob::TestCase
|
||||
|
||||
test "returns count of disabled rules" do
|
||||
3.times do |i|
|
||||
range = NetworkRange.create!(cidr: "10.#{i}.0.0/16")
|
||||
Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.#{i}.0.0/16" },
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: range,
|
||||
expires_at: 1.hour.ago,
|
||||
enabled: true
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user