fix(port-manager, certificate-manager): Improve port binding and ACME challenge route integration in SmartProxy

This commit is contained in:
2025-05-20 15:32:19 +00:00
parent 3b1531d4a2
commit 669cc2809c
7 changed files with 746 additions and 26 deletions

View File

@ -5,7 +5,9 @@ import { SmartProxy } from '../ts/proxies/smart-proxy/smart-proxy.js';
let echoServer: net.Server;
let proxy: SmartProxy;
tap.test('port forwarding should not immediately close connections', async () => {
tap.test('port forwarding should not immediately close connections', async (tools) => {
// Set a timeout for this test
tools.timeout(10000); // 10 seconds
// Create an echo server
echoServer = await new Promise<net.Server>((resolve) => {
const server = net.createServer((socket) => {
@ -39,7 +41,9 @@ tap.test('port forwarding should not immediately close connections', async () =>
const result = await new Promise<string>((resolve, reject) => {
client.on('data', (data) => {
resolve(data.toString());
const response = data.toString();
client.end(); // Close the connection after receiving data
resolve(response);
});
client.on('error', reject);
@ -48,8 +52,6 @@ tap.test('port forwarding should not immediately close connections', async () =>
});
expect(result).toEqual('ECHO: Hello');
client.end();
});
tap.test('TLS passthrough should work correctly', async () => {
@ -76,11 +78,23 @@ tap.test('TLS passthrough should work correctly', async () => {
tap.test('cleanup', async () => {
if (echoServer) {
echoServer.close();
await new Promise<void>((resolve) => {
echoServer.close(() => {
console.log('Echo server closed');
resolve();
});
});
}
if (proxy) {
await proxy.stop();
console.log('Proxy stopped');
}
});
export default tap.start();
export default tap.start().then(() => {
// Force exit after tests complete
setTimeout(() => {
console.log('Forcing process exit');
process.exit(0);
}, 1000);
});