Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix browser test suite by using Node.js 6 #667

Merged
merged 2 commits into from
Aug 2, 2018
Merged

Conversation

phillipj
Copy link
Collaborator

@phillipj phillipj commented Aug 2, 2018

For a long time we've struggled getting the browser test suite to run on Sauce Labs. Those tests were running on Node.js 4 which is getting quite old.

In a trial-n-error effort, I tried adding Node.js 6 as one of the versions to run on Travis CI, and at the same time ensure the browsers tests were run on that version instead of Node.js 4. Voila the suite passed right away, at least it did when in a feature branch, 🤞 it will still work when merged to master.

It therefore seemed like the issues we were seeing had to do with us running those tests via Node.js 4.

Also snook in a change for installing npm v2.x only when running tests on Node.js 0.8

For a long time we've struggled getting the browser test suite to run
on sauce labs. Those tests were running on Node.js 4 which is getting
quite old.

In a trial-n-error effort, I tried adding Node.js 6 as one of the
versions to run on Travis CI, and at the same time ensure the browsers
tests were run on that version instead of Node.js 4 -- voila the suite
passed right away.

It therefore seemed like the issues we were seeing had to do with us
running those tests via Node.js 4.
For a long time, we've been installing npm v2.x before running tests
on Travis CI across all Node.js versions.

While doing some testing today, I observed that we were able to install
dependencies and run all tests just fine on all Node.js versions, except
for v0.8. Therefore ensure we only force an install of npm v2.x when
running tests on Node.js 0.8, and keep the installed npm versio nas is
for all other Node.js versions.
@phillipj
Copy link
Collaborator Author

phillipj commented Aug 2, 2018

Worth mentioning this is a precursor to releasing a couple of new mustache.js versions. I really want the test suite(s) to be running successfully on the master branch before cutting new versions.

@phillipj phillipj merged commit 5bbe25e into master Aug 2, 2018
@phillipj phillipj deleted the fix-browser-tests branch August 2, 2018 21:18
phillipj added a commit that referenced this pull request Aug 7, 2018
These changes makes zuul use ngrok for exposing itself to the outside world, rather than the default localtunnel implementation. That's because we've had quite a lot of issues with flakyness which seems to be related to localtunnel, e.g.:

```
- starting: <internet explorer 9 on Windows 2008>
events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: connection refused: localtunnel.me:44896 (check your firewall settings)
    at Socket.<anonymous> (/home/travis/build/janl/mustache.js/node_modules/localtunnel/client.js:84:32)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at emitErrorNT (net.js:1290:8)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
```

I thought this was fixed by [using Node.js 6 instead of Node.js 4](#667), but sadly that was not the case as it re-appeared with Node.js 6 as well.

Had to use a [custom version of zuul-ngrok](https://github.com/rase-/zuul-ngrok/pull/12) which contains a newer version of ngrok. The dependency used by the upstream module threw an error when running on my computer, the updated version worked as a charm though. We should change to using the upstream module as soon as the PR with that ngrok version bump lands.

Set `concurrency: 1` otherwise ngrok would fail and make IE11 tests stall forever because of too many connections being made within a short time period. I've notice it can take quite some time (20+ minutes) to get all the tests through as it seems ngrok still seems to throttle the connections somehow, but the important thing is getting these tests to work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant