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
});
};
Errors
Common errors & fixes
Error: Module "karma-websocket-server" not found
Package is not installed or path resolution failed.
fixnpm install karma-websocket-server --save-dev
TypeError: server.on is not a function
Using the wrong server instance or incorrect callback signature.
fixEnsure `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.
fixVerify `websocketServer.port` matches the port in test WebSocket URL and that Karma is configured to use the framework.
Audit
Dependencies
karmarequiredpeer dependency — must be installed alongside karma
websocketrequiredruntime dependency — provides WebSocket server implementation