feat(websockets): add websocket tests

This commit is contained in:
Siddharth Gelera
2025-09-18 14:10:04 +05:30
parent 11a967ef50
commit d209272e16
10 changed files with 301 additions and 101 deletions

View File

@@ -150,7 +150,7 @@ const WsQueryUrl = ({ item, collection, handleRun }) => {
</div>
)}
<div className="cursor-pointer" onClick={handleRunClick}>
<div data-testid="run-button" className="cursor-pointer" onClick={handleRunClick}>
<IconArrowRight color={theme.requestTabPanel.url.icon} strokeWidth={1.5} size={22} />
</div>
</div>

View File

@@ -29,6 +29,7 @@
"js-yaml": "^4.1.0",
"jsonwebtoken": "^9.0.2",
"lodash": "^4.17.21",
"multer": "^1.4.5-lts.1"
"multer": "^1.4.5-lts.1",
"ws": "^8.18.3"
}
}

View File

@@ -7,6 +7,7 @@ const echoRouter = require('./echo');
const xmlParser = require('./utils/xmlParser');
const multipartRouter = require('./multipart');
const redirectRouter = require('./redirect');
const wsRouter = require('./ws');
const app = new express();
const port = process.env.PORT || 8081;
@@ -47,6 +48,10 @@ app.get('/redirect-to-ping', function (req, res) {
return res.redirect('/ping');
});
app.listen(port, function () {
const server = require('http').createServer(app);
server.on('upgrade', wsRouter);
server.listen(port, function () {
console.log(`Testbench started on port: ${port}`);
});
});

View File

@@ -0,0 +1,40 @@
const ws = require('ws');
const onSocketError = (err) => {
console.error(err);
};
const wss = new ws.Server({
noServer: true
});
wss.on('connection', function connection(ws, request) {
ws.on('message', function message(data) {
ws.send(
JSON.stringify({
data: JSON.parse(Buffer.from(data).toString()),
})
);
});
});
const wsRouter = (request, socket, head) => {
socket.on('error', onSocketError);
if (request.url !== '/ws') {
socket.write('HTTP/1.1 404 Not Found\r\n\r\n');
socket.destroy();
socket.removeListener('error', onSocketError);
return;
}
wss.handleUpgrade(request, socket, head, function done(ws) {
wss.emit('connection', ws, request);
});
};
module.exports = wsRouter;