Registry / testing / karma-websocket-server

karma-websocket-server

JSON →
library1.0.0jsnpmunverified

Karma plugin that bundles a WebSocket-Node server for unit tests, allowing global start/stop during test lifecycle. Version 1.0.0, stable, no active development. Provides a `websocketServer` config object with `port`, `beforeStart`, and `afterStart` callbacks to control server behavior. Differentiators: lightweight, relies on WebSocket-Node, not ws; integrates seamlessly with Karma as a framework.

npm install karma-websocket-server
INSTALL
IMPORT
SIG · KARMA-WEBSOCKET-SE
K
karma-websocket-server
testingjavascriptv1.0.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

websocketServer configuration
module.exports = function(config) { config.set({ frameworks: ['websocket-server'], websocketServer: { port: 8889, beforeStart: (server) => {}, afterStart: (server) => {} } }); }
Using `require('karma-websocket-server')` in karma config
Do not import the plugin directly; it is auto-loaded by Karma when added to `frameworks`.
server instance (beforeStart callback)
beforeStart: (server) => { server.on('request', (req) => { /* handle request */ }); }
Assuming `server` is an instance of `ws.WebSocket` — it's an instance of `WebSocketServer` from the `websocket` package with different API.
Use 'request' event and accept using `req.accept(protocol, origin)` pattern from WebSocket-Node.
server instance (afterStart callback)
afterStart: (server) => { console.log('Server on port ' + server.options.port); }
Expecting server to have a `close` callback — the server is managed by Karma lifecycle.
Karma starts and stops the server automatically; do not manually close the server in callbacks.

Shows full Karma configuration using the plugin with a WebSocket echo server example.

// karma.conf.js module.exports = function(config) { config.set({ frameworks: ['websocket-server'], files: ['test/**/*.js', 'node_modules/karma-websocket-server/node_modules/websocket/build/Release/bufferutil.js'], websocketServer: { port: 8889, beforeStart: (server) => { server.on('request', (req) => { console.log('New WebSocket request from ' + req.origin); const connection = req.accept('echo-protocol', req.origin); connection.on('message', (message) => { if (message.type === 'utf8') { connection.sendUTF(message.utf8Data); } }); }); }, afterStart: (server) => { console.log('WebSocket server listening on port ' + server.options.port); } }, browsers: ['ChromeHeadless'], singleRun: true }); };
Debug
Known issues
gotchaPlugin expects WebSocket-Node (not `ws`) — incompatible with `ws` based code.
fix
Use `websocket` package API (WebSocketServer, request event, accept) instead of `ws` library.
affects: >=1.0.0
gotchaServer lifecycle managed by Karma — do not start/stop server manually.
fix
Remove any manual server.start() or server.stop() calls; Karma handles it.
affects: >=1.0.0
gotchaPort may conflict with other Karma servers or external services if not explicitly configured.
fix
Set a unique `websocketServer.port` value (e.g., 8889) in karma config.
affects: >=1.0.0
Errors
Common errors & fixes
Error: Module "karma-websocket-server" not found
Package is not installed or path resolution failed.
fix
npm install karma-websocket-server --save-dev
TypeError: server.on is not a function
Using the wrong server instance or incorrect callback signature.
fix
Ensure `beforeStart` receives the WebSocketServer instance; use `server.on('request', ...)` inside beforeStart.
WebSocket connection to 'ws://localhost:8889/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
WebSocket server is not running or port mismatch.
fix
Verify `websocketServer.port` matches the port in test WebSocket URL and that Karma is configured to use the framework.
Upgrade
Version history
1.0.0latest on npm
Audit
Dependencies
karmarequiredpeer dependency — must be installed alongside karma
websocketrequiredruntime dependency — provides WebSocket server implementation
Agent activity
4 hits · last 30 days
node
4
Resources
karma-websocket-server — npm install karma-websocket-server · libregistry