Tidy up homepage and navigation
This commit is contained in:
@@ -5,10 +5,9 @@ require "test_helper"
|
||||
module Api
|
||||
class RulesControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
@project = Project.create!(
|
||||
name: "Test Project",
|
||||
slug: "test-project",
|
||||
public_key: "test-key-#{SecureRandom.hex(8)}"
|
||||
@dsn = Dsn.create!(
|
||||
name: "Test DSN",
|
||||
key: "test-key-#{SecureRandom.hex(8)}"
|
||||
)
|
||||
|
||||
@rule1 = Rule.create!(
|
||||
@@ -27,7 +26,7 @@ module Api
|
||||
end
|
||||
|
||||
test "version endpoint returns correct structure" do
|
||||
get "/api/#{@project.public_key}/rules/version"
|
||||
get "/api/rules/version", headers: { "Authorization" => "Bearer #{@dsn.key}" }
|
||||
|
||||
assert_response :success
|
||||
|
||||
@@ -45,21 +44,21 @@ module Api
|
||||
|
||||
assert_response :unauthorized
|
||||
json = JSON.parse(response.body)
|
||||
assert_equal "Invalid project key", json["error"]
|
||||
assert_equal "Invalid DSN key", json["error"]
|
||||
end
|
||||
|
||||
test "version endpoint rejects disabled projects" do
|
||||
@project.update!(enabled: false)
|
||||
@dsn.update!(enabled: false)
|
||||
|
||||
get "/api/#{@project.public_key}/rules/version"
|
||||
get "/api/rules/version"
|
||||
|
||||
assert_response :forbidden
|
||||
json = JSON.parse(response.body)
|
||||
assert_equal "Project is disabled", json["error"]
|
||||
assert_equal "DSN is disabled", json["error"]
|
||||
end
|
||||
|
||||
test "index endpoint returns all active rules" do
|
||||
get "/api/#{@project.public_key}/rules"
|
||||
get "/api/rules"
|
||||
|
||||
assert_response :success
|
||||
|
||||
@@ -78,7 +77,7 @@ module Api
|
||||
test "index endpoint excludes disabled rules" do
|
||||
@rule1.update!(enabled: false)
|
||||
|
||||
get "/api/#{@project.public_key}/rules"
|
||||
get "/api/rules"
|
||||
|
||||
assert_response :success
|
||||
|
||||
@@ -90,7 +89,7 @@ module Api
|
||||
test "index endpoint excludes expired rules" do
|
||||
@rule1.update!(expires_at: 1.hour.ago)
|
||||
|
||||
get "/api/#{@project.public_key}/rules"
|
||||
get "/api/rules"
|
||||
|
||||
assert_response :success
|
||||
|
||||
@@ -104,7 +103,7 @@ module Api
|
||||
@rule1.update_column(:updated_at, 2.hours.ago)
|
||||
|
||||
since_time = 1.hour.ago.iso8601
|
||||
get "/api/#{@project.public_key}/rules?since=#{since_time}"
|
||||
get "/api/rules?since=#{since_time}"
|
||||
|
||||
assert_response :success
|
||||
|
||||
@@ -117,7 +116,7 @@ module Api
|
||||
@rule1.update!(enabled: false) # This updates updated_at
|
||||
|
||||
since_time = 1.minute.ago.iso8601
|
||||
get "/api/#{@project.public_key}/rules?since=#{since_time}"
|
||||
get "/api/rules?since=#{since_time}"
|
||||
|
||||
assert_response :success
|
||||
|
||||
@@ -130,7 +129,7 @@ module Api
|
||||
end
|
||||
|
||||
test "index endpoint with invalid timestamp returns error" do
|
||||
get "/api/#{@project.public_key}/rules?since=invalid-timestamp"
|
||||
get "/api/rules?since=invalid-timestamp"
|
||||
|
||||
assert_response :bad_request
|
||||
json = JSON.parse(response.body)
|
||||
@@ -144,7 +143,7 @@ module Api
|
||||
end
|
||||
|
||||
test "index endpoint includes sampling information" do
|
||||
get "/api/#{@project.public_key}/rules"
|
||||
get "/api/rules"
|
||||
|
||||
assert_response :success
|
||||
|
||||
@@ -180,7 +179,7 @@ module Api
|
||||
conditions: { cidr: "192.168.3.0/24" }
|
||||
)
|
||||
|
||||
get "/api/#{@project.public_key}/rules?since=#{4.hours.ago.iso8601}"
|
||||
get "/api/rules?since=#{4.hours.ago.iso8601}"
|
||||
|
||||
assert_response :success
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ require "test_helper"
|
||||
|
||||
class PathScannerDetectorJobTest < ActiveJob::TestCase
|
||||
setup do
|
||||
@project = Project.first || Project.create!(
|
||||
@project = Project.first || #Project.create!(
|
||||
name: "Test Project",
|
||||
slug: "test-project",
|
||||
public_key: SecureRandom.hex(16)
|
||||
|
||||
@@ -4,7 +4,6 @@ require "test_helper"
|
||||
|
||||
class EventTest < ActiveSupport::TestCase
|
||||
def setup
|
||||
@project = Project.create!(name: "Test Project", slug: "test-project")
|
||||
@sample_payload = {
|
||||
"event_id" => "test-event-123",
|
||||
"timestamp" => Time.now.iso8601,
|
||||
@@ -41,14 +40,12 @@ class EventTest < ActiveSupport::TestCase
|
||||
|
||||
def teardown
|
||||
Event.delete_all # Delete events first to avoid foreign key constraints
|
||||
Project.delete_all
|
||||
end
|
||||
|
||||
test "create_from_waf_payload! creates event with proper enum values" do
|
||||
event = Event.create_from_waf_payload!("test-123", @sample_payload, @project)
|
||||
event = Event.create_from_waf_payload!("test-123", @sample_payload)
|
||||
|
||||
assert event.persisted?
|
||||
assert_equal @project, event.project
|
||||
assert_equal "test-123", event.event_id
|
||||
assert_equal "192.168.1.1", event.ip_address
|
||||
assert_equal "/api/test", event.request_path
|
||||
@@ -71,7 +68,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
payload["request"]["method"] = method
|
||||
payload["event_id"] = "test-method-#{method.downcase}"
|
||||
|
||||
event = Event.create_from_waf_payload!("test-method-#{method.downcase}", payload, @project)
|
||||
event = Event.create_from_waf_payload!("test-method-#{method.downcase}", payload)
|
||||
|
||||
assert_equal expected_enums[index].to_s, event.request_method,
|
||||
"Method #{method} should map to enum #{expected_enums[index]}"
|
||||
@@ -96,7 +93,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
payload["waf_action"] = action
|
||||
payload["event_id"] = "test-action-#{action}"
|
||||
|
||||
event = Event.create_from_waf_payload!("test-action-#{action}", payload, @project)
|
||||
event = Event.create_from_waf_payload!("test-action-#{action}", payload)
|
||||
|
||||
assert_equal expected_enum.to_s, event.waf_action,
|
||||
"Action #{action} should map to enum #{expected_enum}"
|
||||
@@ -113,7 +110,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
"CONTENT-TYPE" => "application/json"
|
||||
}
|
||||
|
||||
event = Event.create_from_waf_payload!("test-headers", payload, @project)
|
||||
event = Event.create_from_waf_payload!("test-headers", payload)
|
||||
|
||||
assert_equal "TestAgent/1.0", event.user_agent
|
||||
# The normalize_payload_headers method should normalize header keys to lowercase
|
||||
@@ -123,7 +120,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
test "enum values persist after save and reload" do
|
||||
event = Event.create_from_waf_payload!("test-persist", @sample_payload, @project)
|
||||
event = Event.create_from_waf_payload!("test-persist", @sample_payload)
|
||||
|
||||
# Verify initial values
|
||||
assert_equal "get", event.request_method
|
||||
@@ -232,7 +229,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
test "payload extraction methods work correctly" do
|
||||
event = Event.create_from_waf_payload!("extraction-test", @sample_payload, @project)
|
||||
event = Event.create_from_waf_payload!("extraction-test", @sample_payload)
|
||||
|
||||
# Test request_details
|
||||
request_details = event.request_details
|
||||
@@ -258,7 +255,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
test "helper methods work correctly" do
|
||||
event = Event.create_from_waf_payload!("helper-test", @sample_payload, @project)
|
||||
event = Event.create_from_waf_payload!("helper-test", @sample_payload)
|
||||
|
||||
# Test boolean methods
|
||||
assert event.allowed?
|
||||
@@ -284,7 +281,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
payload["timestamp"] = timestamp
|
||||
payload["event_id"] = "timestamp-test-#{index}"
|
||||
|
||||
event = Event.create_from_waf_payload!("timestamp-test-#{index}", payload, @project)
|
||||
event = Event.create_from_waf_payload!("timestamp-test-#{index}", payload)
|
||||
assert event.timestamp.is_a?(Time), "Timestamp #{index} should be parsed as Time"
|
||||
assert_not event.timestamp.nil?
|
||||
end
|
||||
@@ -304,7 +301,7 @@ class EventTest < ActiveSupport::TestCase
|
||||
}
|
||||
}
|
||||
|
||||
event = Event.create_from_waf_payload!("minimal-test", minimal_payload, @project)
|
||||
event = Event.create_from_waf_payload!("minimal-test", minimal_payload)
|
||||
|
||||
assert event.persisted?
|
||||
assert_equal "10.0.0.1", event.ip_address
|
||||
|
||||
Reference in New Issue
Block a user