airtap / airtap

Run TAP unit tests in 1789+ browsers.
MIT License
1.36k stars 43 forks source link

airtap does not close sessions/browsers #297

Closed jkroepke closed 3 years ago

jkroepke commented 3 years ago

Hi!

I recently upgrade to airtap 4.0.1 on node 12. I have the problem that sessions are not ended. I have this situation on any provider, like airtap-default, airtap-system or airtap-sauce. I have this issue on my local machine (osx) and on github actions.

On the default provider, the tap is close, but the command still hangs on die command line.

Runner with DEBUG=*, I couldn't see any error and It confirms the test has been ended:

  engine:socket packet +46ms
  airtap:browser-session ending 'Default browser' +48ms

Example Run: https://app.saucelabs.com/tests/7484ff75b99649e78550331746679bbe

vweevers commented 3 years ago

Can you provide a way to replicate this?

jkroepke commented 3 years ago

Sure.

git clone https://github.com/adorsys/encrypt-down.git
git checkout 667668b918eb280cf0dcc91041ae72c98fa4f921 # commit before switch back to airtap 3
npm ci
npm run test:integ-browser-local

I could confirm, airtap 3 is working fine in GH actions.

vweevers commented 3 years ago

I'm able to replicate. The session (which is a stream) emits end but not close (which is what airtap is waiting for).

Possibly because:

$ npm ls readable-stream
@adorsys/encrypt-down@0.0.0-development
+-- @commitlint/cli@11.0.0
| `-- @commitlint/read@11.0.0
|   `-- git-raw-commits@2.0.8
|     +-- split2@2.2.0
|     | `-- through2@2.0.5
|     |   `-- readable-stream@2.3.7  deduped
|     `-- through2@4.0.2
|       `-- readable-stream@3.6.0
+-- airtap@4.0.1
| +-- UNMET DEPENDENCY readable-stream@^3.6.0

[..]

npm ERR! missing: readable-stream@^3.6.0, required by airtap@4.0.1
jkroepke commented 3 years ago

Thanks. I had to force the browserify dependency to 16.5.1 (See: https://github.com/browserify/browserify/issues/1986). Since npm doesn't allow to override dependencies I had to manually modify the package-lock.json.

Looks like I do it wrong. Sorry for your time.

Maybe at some later point airtap could add browserify as peer dependency. Users could choice the version of browserify they need.