import { tap, expect } from '@git.zone/tstest/tapbundle'; import * as smartproxy from '../ts/index.js'; tap.test('route security should be correctly configured', async () => { // Test that we can create a proxy with route-specific security const routes = [{ name: 'secure-route', match: { ports: 8990 }, action: { type: 'forward' as const, target: { host: '127.0.0.1', port: 8991 }, security: { ipAllowList: ['192.168.1.1'], ipBlockList: ['10.0.0.1'] } } }]; // This should not throw an error const proxy = new smartproxy.SmartProxy({ enableDetailedLogging: false, routes: routes }); // The proxy should be created successfully expect(proxy).toBeInstanceOf(smartproxy.SmartProxy); // Test that security manager exists and has the isIPAuthorized method const securityManager = (proxy as any).securityManager; expect(securityManager).toBeDefined(); expect(typeof securityManager.isIPAuthorized).toEqual('function'); // Test IP authorization logic directly const isLocalhostAllowed = securityManager.isIPAuthorized( '127.0.0.1', ['192.168.1.1'], // Allow list [] // Block list ); expect(isLocalhostAllowed).toBeFalse(); const isAllowedIPAllowed = securityManager.isIPAuthorized( '192.168.1.1', ['192.168.1.1'], // Allow list [] // Block list ); expect(isAllowedIPAllowed).toBeTrue(); const isBlockedIPAllowed = securityManager.isIPAuthorized( '10.0.0.1', ['0.0.0.0/0'], // Allow all ['10.0.0.1'] // But block this specific IP ); expect(isBlockedIPAllowed).toBeFalse(); }); tap.start();