DEV: Allow webmock to intercept FinalDestination::HTTP requests (#20575)

This commit is contained in:
Alan Guo Xiang Tan
2023-03-08 10:40:01 +08:00
committed by GitHub
parent a252022117
commit 500d0f6daf
2 changed files with 44 additions and 29 deletions

View File

@@ -7,7 +7,15 @@ WebMock::HttpLibAdapterRegistry.instance.register(
def self.enable!
FinalDestination.send(:remove_const, :HTTP)
FinalDestination.send(:const_set, :HTTP, Net::HTTP)
# At this point, `Net::HTTP` has already been patched by WebMock so we need to re-declare `FinalDestination::HTTP`
# but inherit from the patched `Net::HTTP` class. This is to allow requests made using `FinalDestination::HTTP` to be
# intercepted by WebMock.
FinalDestination.send(
:const_set,
:HTTP,
Class.new(Net::HTTP) { include FinalDestination::SSRFSafeNetHTTP },
)
end
def self.disable!