Files
Runar Ingebrigtsen 9f71fe65e5
CI / scan_ruby (push) Successful in 17s
CI / scan_js (push) Successful in 12s
CI / lint (push) Successful in 21s
CI / test (push) Successful in 48s
test corst, fix footer
2026-02-06 02:01:57 +01:00

56 lines
1.6 KiB
Ruby

require "test_helper"
class SanastoCorsTest < ActiveSupport::TestCase
def setup
@app = ->(_env) { [ 200, {}, [ "ok" ] ] }
@middleware = Middleware::SanastoCors.new(@app)
@origin = "http://localhost:5173"
@app_id = "app.sanasto"
end
test "adds cors headers for allowed get requests" do
env = Rack::MockRequest.env_for(
"/api/entries",
method: "GET",
"HTTP_ORIGIN" => @origin,
"HTTP_X_SANASTO_APP" => @app_id
)
status, headers, _body = @middleware.call(env)
assert_equal 200, status
assert_equal @origin, headers["Access-Control-Allow-Origin"]
assert_includes headers["Access-Control-Allow-Headers"], "X-Sanasto-App"
end
test "returns preflight response with cors headers when app header is requested" do
env = Rack::MockRequest.env_for(
"/api/entries",
method: "OPTIONS",
"HTTP_ORIGIN" => @origin,
"HTTP_ACCESS_CONTROL_REQUEST_METHOD" => "GET",
"HTTP_ACCESS_CONTROL_REQUEST_HEADERS" => "x-sanasto-app"
)
status, headers, _body = @middleware.call(env)
assert_equal 204, status
assert_equal @origin, headers["Access-Control-Allow-Origin"]
assert_includes headers["Access-Control-Allow-Headers"], "x-sanasto-app"
assert_includes headers["Vary"], "Access-Control-Request-Headers"
end
test "does not add cors headers when app id is missing" do
env = Rack::MockRequest.env_for(
"/api/entries",
method: "GET",
"HTTP_ORIGIN" => @origin
)
status, headers, _body = @middleware.call(env)
assert_equal 200, status
assert_nil headers["Access-Control-Allow-Origin"]
end
end