initial
This commit is contained in:
49
test/test.vpnserver.node.ts
Normal file
49
test/test.vpnserver.node.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { tap, expect } from '@git.zone/tstest/tapbundle';
|
||||
import { VpnServer } from '../ts/index.js';
|
||||
import type { IVpnServerOptions } from '../ts/index.js';
|
||||
|
||||
let server: VpnServer;
|
||||
|
||||
tap.test('VpnServer: spawn daemon in stdio mode', async () => {
|
||||
const options: IVpnServerOptions = {
|
||||
transport: { transport: 'stdio' },
|
||||
};
|
||||
server = new VpnServer(options);
|
||||
// Start without a config (just start bridge, don't send 'start' command)
|
||||
const started = await server['bridge'].start();
|
||||
expect(started).toBeTrue();
|
||||
expect(server.running).toBeTrue();
|
||||
});
|
||||
|
||||
tap.test('VpnServer: getStatus returns disconnected', async () => {
|
||||
const status = await server.getStatus();
|
||||
expect(status.state).toEqual('disconnected');
|
||||
});
|
||||
|
||||
tap.test('VpnServer: getStatistics returns zeros', async () => {
|
||||
const stats = await server.getStatistics();
|
||||
expect(stats.bytesSent).toEqual(0);
|
||||
expect(stats.activeClients).toEqual(0);
|
||||
});
|
||||
|
||||
tap.test('VpnServer: listClients returns empty array', async () => {
|
||||
const clients = await server.listClients();
|
||||
expect(clients).toBeArray();
|
||||
expect(clients.length).toEqual(0);
|
||||
});
|
||||
|
||||
tap.test('VpnServer: generateKeypair returns valid keypair', async () => {
|
||||
const keypair = await server.generateKeypair();
|
||||
expect(keypair.publicKey).toBeTypeofString();
|
||||
expect(keypair.privateKey).toBeTypeofString();
|
||||
expect(keypair.publicKey.length).toBeGreaterThan(0);
|
||||
expect(keypair.privateKey.length).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
tap.test('VpnServer: stop daemon', async () => {
|
||||
server.stop();
|
||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
||||
expect(server.running).toBeFalse();
|
||||
});
|
||||
|
||||
export default tap.start();
|
||||
Reference in New Issue
Block a user