I have a Rails 6 application that relies on public caching e.g.
expires_in 1.week, public: true. These pages must undergo integration tests (Capybara/Headless Chrome), and some pages change state between test cases. In order to prevent sporadic, order-dependent test failures, I want to disable HTTP caching (i.e. “Conditional GET”) in my test suite.
My first intuition, based on the docs, was that setting
config.action_controller.perform_caching = false would disable all caching, but this turned out to not be the case. Running
config.middleware.delete(Rack::ConditionalGet) also didn’t make a difference.
Is there a clean way to do this?
If there isn’t a way, would there be any interest in a pull request implementing a configuration option, e.g.
config.action_controller.http_caching = false? I’d be happy to contribute it, but only if you feel it’s a potentially worthwhile addition.