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>
Once https://github.com/ArturT/knapsack/issues/57 is solved and released
in a new gem version, we can remove the KNAPSACK_TEST_DIR in
.gitlab-ci.yml.
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.
I suspect some combination of Knapsack tests cause no regular Rack tests
to be loaded (i.e. all JavaScript tests), which leads to the error:
ArgumentError: rack-test requires a rack application, but none was given
In CI, we precompile all the assets so there is no need to warm the
asset cache in any case.
Closes#23613
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.