Access the request object in a helper in a helper test (minitest)
Using Rails 6 and minitest, I am testing a helper method which generates a JWT token to make a request to an external service. Inside the JWT's payload hash, I need the pass the source url. Ideally, I'd like to use request.original_url
, but the request object is not available when the helper test runs.
How can I mock the request
object so that it's accessible in the helper at the moment the test runs?
Update:
Currently I am using the following setup:
setup do
controller.request = ActionDispatch::Request.new(:test)
end
And similarly accessing the request object on the controller insite my helper method:
def payload_for_jwt
{
source: controller.request.original_url
}
end
It works, but is it the correct approach? Cleaner would be if the request
object can be accessed directly, but that's a minor issue I thnk.