capybara/rspec already calls Capybara.reset_sessions! in an
`after` hook, but `block_and_wait_for_requests_complete` is called
before it so by calling it explicitely here, we prevent any new
requests from being fired.
See
ffb41cfad6/lib/capybara/rspec.rb (L20-L25)
Signed-off-by: Rémy Coutable <remy@rymai.me>
This change fix a memory leak due to a Webkit bug:
https://github.com/ariya/phantomjs/issues/12903
Also:
- Whitelist only localhost and 127.0.0.1 in Capybara + JS specs
- Blacklist all requests to media such as images, videos, PDFs, CSVs etc.
- Log all the requests made.
Signed-off-by: Rémy Coutable <remy@rymai.me>
Also disabled assets warming for Capybara/RSpec and remove a check to
skip assets warming when ./tmp/cache/assets/test exists because assets
are now served by webpack-dev-server.
Signed-off-by: Rémy Coutable <remy@rymai.me>
We were unintentionally hitting `gravatar.com` whenever a test that used
Poltergeist was run. This was certainly wasting their resources and
slowing down our tests even further, for no reason.
The problem occurred because asset compilation takes a long time, so
when the asset cache didn't exist and the first test ran, it would often
(randomly) time out during the generation before the actual test even
had a chance to run.
Now we check if the cache exists before the suite runs, and if not, we
manually fire a request to the root URL in order to generate it. This
should allow subsequent tests to use the cached assets.