Tidy up homepage and navigation

This commit is contained in:
Dan Milne
2025-11-09 20:58:13 +11:00
parent c9e2992fe0
commit 1f4428348d
56 changed files with 2822 additions and 955 deletions

View File

@@ -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