Path matching

This commit is contained in:
Dan Milne
2025-11-17 12:12:17 +11:00
parent 093ee71c9f
commit 830810305b
14 changed files with 721 additions and 45 deletions

View File

@@ -78,14 +78,17 @@ class EventTest < ActiveSupport::TestCase
end
test "create_from_waf_payload! properly normalizes waf_action enum" do
# Updated enum values: deny:0, allow:1, redirect:2, challenge:3, log:4
test_actions = [
["allow", :allow, 0],
["pass", :allow, 0],
["deny", :deny, 1],
["block", :deny, 1],
["deny", :deny, 0],
["block", :deny, 0],
["allow", :allow, 1],
["pass", :allow, 1],
["redirect", :redirect, 2],
["challenge", :challenge, 3],
["unknown", :allow, 0] # Default fallback
["log", :log, 4],
["monitor", :log, 4],
["unknown", :allow, 1] # Default fallback
]
test_actions.each do |action, expected_enum, expected_int|
@@ -122,20 +125,20 @@ class EventTest < ActiveSupport::TestCase
test "enum values persist after save and reload" do
event = Event.create_from_waf_payload!("test-persist", @sample_payload)
# Verify initial values
# Verify initial values (updated enum: deny:0, allow:1)
assert_equal "get", event.request_method
assert_equal "allow", event.waf_action
assert_equal 0, event.request_method_before_type_cast
assert_equal 0, event.waf_action_before_type_cast
assert_equal 1, event.waf_action_before_type_cast # allow is now 1
# Reload from database
event.reload
# Values should still be correct
# Values should still be correct (allow is now 1)
assert_equal "get", event.request_method
assert_equal "allow", event.waf_action
assert_equal 0, event.request_method_before_type_cast
assert_equal 0, event.waf_action_before_type_cast
assert_equal 1, event.waf_action_before_type_cast
end
test "enum scopes work correctly" do
@@ -260,7 +263,7 @@ class EventTest < ActiveSupport::TestCase
# Test boolean methods
assert event.allowed?
assert_not event.blocked?
assert_not event.rate_limited?
assert_not event.logged? # Changed from rate_limited? to logged?
assert_not event.challenged?
assert_not event.rule_matched?