1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
# frozen_string_literal: true
require "abstract_unit"
class RoutingInstrumentationTest < ActionDispatch::IntegrationTest
test "redirect is instrumented" do
draw do
get "redirect", to: redirect("/login")
end
event = subscribed("redirect.action_dispatch") { get "/redirect" }
assert_equal 301, event.payload[:status]
assert_equal "http://www.example.com/login", event.payload[:location]
assert_kind_of ActionDispatch::Request, event.payload[:request]
end
private
def draw(&block)
self.class.stub_controllers do |routes|
routes.default_url_options = { host: "www.example.com" }
routes.draw(&block)
@app = RoutedRackApp.new routes
end
end
def subscribed(event_pattern, &block)
event = nil
subscriber = -> (_event) { event = _event }
ActiveSupport::Notifications.subscribed(subscriber, event_pattern, &block)
event
end
end
|