karma-runner / karma-runner/karma

Karma pseudo-reopens PhantomJS connection with asynchronous logging + captureConsole

Open
#1,908 1 comment 1 reaction 0 assignees View on GitHub
help wanted type: bug
Dominant language
JavaScript
Stars
12k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

Our frontend code uses Bluebird, which asynchronously logs after tests are run to report unhandled rejections. Looking in Karma's `karma.js`, it seems these asynchronous logs are just piped down the WebSocket - even if the `complete` message has already been sent. Karma-side in `browser.js`, this `info` event restarts the disconnection timer, despite it having been closed down by the `complete` handler.

As such, Karma will hang after this happens, and after 10 seconds, a disconnection-due-to-timeout will fire, calling the Karma server's callback a second time (which, in our case, breaks Gulp).

Current workaround is to add `captureConsole: false` to the Karma client config, though we'd really like to see the logs as well when running via PhantomJS.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.