Files
ShieldAI/test-ws-maxpayload2.js
Michael Freno 7b925c89bd Fix 3 Code Review findings on FRE-4574
- P2: Replace wget with curl for ECS health check (Alpine lacks wget)
- P2: Add AWS credentials step to CI terraform-plan job for S3 backend auth
- P3: Remove unused GitHub provider from infra/main.tf

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-10 07:09:39 -04:00

74 lines
1.6 KiB
JavaScript

const { WebSocketServer, WebSocket } = require('ws');
const { createServer } = require('http');
const httpServer = createServer();
const wss = new WebSocketServer({
port: 0,
maxPayload: 65536, // 64KB
});
let testPassed = false;
wss.on('connection', (ws) => {
console.log('Client connected');
// Send oversized message
const oversized = 'x'.repeat(70000);
console.log('Sending 70KB message...');
ws.send(oversized, (err) => {
if (err) {
console.log('✓ Error received (expected):', err.message);
testPassed = true;
} else {
console.log('✗ No error - maxPayload NOT enforced!');
}
ws.close();
httpServer.close();
wss.close();
if (testPassed) {
console.log('✅ TEST PASSED: maxPayload (64KB) is enforced');
process.exit(0);
} else {
console.log('❌ TEST FAILED');
process.exit(1);
}
});
});
httpServer.listen(0, () => {
const port = httpServer.address().port;
console.log('Server listening on port', port);
// Create client immediately
const ws = new WebSocket(`ws://localhost:${port}`);
ws.on('open', () => {
console.log('Client connected to server');
});
ws.on('error', (err) => {
console.log('Client error:', err.message);
httpServer.close();
wss.close();
});
ws.on('close', () => {
if (!testPassed) {
console.log('❌ Test timed out - no response received');
process.exit(1);
}
});
});
// Timeout after 5 seconds
setTimeout(() => {
console.log('❌ Test timed out');
process.exit(1);
}, 5000);
// Create client immediately
const ws = new WebSocket(`ws://localhost:${port}`);