How to add a delay to Rails controller for testing?
Controller like so:
def catalog
#Makes the request pause 1.5 seconds
sleep 1.5
...
end
Even better: only add the sleep for the dev environment.
Elaborating on accepted answer. If you have some base controller like the default ApplicationController
which is extended by any other controller you may define the following filter:
class ApplicationController < ActionController::Base
# adds 1s delay only if in development env
before_action if: "Rails.env.development?" do
sleep 1
end
end
Where: 1 is number of seconds to wait before returning any response, see sleep docs
This filter will be triggered only if your application is in development environment and it will add desired delay to every request processed by your application.