Many updates
This commit is contained in:
@@ -10,18 +10,21 @@ module Api
|
||||
key: "test-key-#{SecureRandom.hex(8)}"
|
||||
)
|
||||
|
||||
@rule1_network_range = NetworkRange.create!(cidr: "10.0.0.0/8")
|
||||
@rule1 = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "10.0.0.0/8" },
|
||||
source: "manual"
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: @rule1_network_range,
|
||||
source: "manual",
|
||||
user: users(:one)
|
||||
)
|
||||
|
||||
@rule2 = Rule.create!(
|
||||
rule_type: "rate_limit",
|
||||
action: "rate_limit",
|
||||
waf_rule_type: "rate_limit",
|
||||
waf_action: "rate_limit",
|
||||
conditions: { cidr: "0.0.0.0/0", scope: "global" },
|
||||
metadata: { limit: 100, window: 60 }
|
||||
metadata: { limit: 100, window: 60 },
|
||||
user: users(:one)
|
||||
)
|
||||
end
|
||||
|
||||
@@ -68,8 +71,8 @@ module Api
|
||||
assert_equal 2, json["rules"].length
|
||||
|
||||
rule = json["rules"].find { |r| r["id"] == @rule1.id }
|
||||
assert_equal "network_v4", rule["rule_type"]
|
||||
assert_equal "deny", rule["action"]
|
||||
assert_equal "network", rule["waf_rule_type"]
|
||||
assert_equal "deny", rule["waf_action"]
|
||||
assert_equal({ "cidr" => "10.0.0.0/8" }, rule["conditions"])
|
||||
assert_equal 8, rule["priority"]
|
||||
end
|
||||
@@ -159,24 +162,27 @@ module Api
|
||||
|
||||
test "rules are ordered by updated_at for sync" do
|
||||
# Create rules with different timestamps
|
||||
oldest_range = NetworkRange.create!(cidr: "192.168.1.0/24")
|
||||
oldest = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "192.168.1.0/24" }
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: oldest_range
|
||||
)
|
||||
oldest.update_column(:updated_at, 3.hours.ago)
|
||||
|
||||
middle_range = NetworkRange.create!(cidr: "192.168.2.0/24")
|
||||
middle = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "192.168.2.0/24" }
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: middle_range
|
||||
)
|
||||
middle.update_column(:updated_at, 2.hours.ago)
|
||||
|
||||
newest_range = NetworkRange.create!(cidr: "192.168.3.0/24")
|
||||
newest = Rule.create!(
|
||||
rule_type: "network_v4",
|
||||
action: "deny",
|
||||
conditions: { cidr: "192.168.3.0/24" }
|
||||
waf_rule_type: "network",
|
||||
waf_action: "deny",
|
||||
network_range: newest_range
|
||||
)
|
||||
|
||||
get "/api/rules?since=#{4.hours.ago.iso8601}"
|
||||
|
||||
Reference in New Issue
Block a user