initial
This commit is contained in:
54
test/test.vpninstaller.node.ts
Normal file
54
test/test.vpninstaller.node.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import { tap, expect } from '@git.zone/tstest/tapbundle';
|
||||
import { VpnInstaller } from '../ts/index.js';
|
||||
|
||||
tap.test('VpnInstaller: detect platform', async () => {
|
||||
const platform = VpnInstaller.detectPlatform();
|
||||
expect(['linux', 'macos', 'windows', 'unknown']).toContain(platform);
|
||||
});
|
||||
|
||||
tap.test('VpnInstaller: generate systemd unit', async () => {
|
||||
const unit = VpnInstaller.generateSystemdUnit({
|
||||
binaryPath: '/usr/local/bin/smartvpn_daemon',
|
||||
socketPath: '/var/run/smartvpn.sock',
|
||||
mode: 'server',
|
||||
});
|
||||
|
||||
expect(unit.platform).toEqual('linux');
|
||||
expect(unit.installPath).toContain('systemd');
|
||||
expect(unit.installPath).toContain('smartvpn-server');
|
||||
expect(unit.content).toContain('[Unit]');
|
||||
expect(unit.content).toContain('[Service]');
|
||||
expect(unit.content).toContain('[Install]');
|
||||
expect(unit.content).toContain('--management-socket');
|
||||
expect(unit.content).toContain('/var/run/smartvpn.sock');
|
||||
expect(unit.content).toContain('--mode server');
|
||||
});
|
||||
|
||||
tap.test('VpnInstaller: generate launchd plist', async () => {
|
||||
const unit = VpnInstaller.generateLaunchdPlist({
|
||||
binaryPath: '/usr/local/bin/smartvpn_daemon',
|
||||
socketPath: '/var/run/smartvpn.sock',
|
||||
mode: 'client',
|
||||
});
|
||||
|
||||
expect(unit.platform).toEqual('macos');
|
||||
expect(unit.installPath).toContain('LaunchDaemons');
|
||||
expect(unit.content).toContain('rocks.push.smartvpn.client');
|
||||
expect(unit.content).toContain('--management-socket');
|
||||
expect(unit.content).toContain('/var/run/smartvpn.sock');
|
||||
});
|
||||
|
||||
tap.test('VpnInstaller: generate service unit for current platform', async () => {
|
||||
const platform = VpnInstaller.detectPlatform();
|
||||
if (platform === 'linux' || platform === 'macos') {
|
||||
const unit = VpnInstaller.generateServiceUnit({
|
||||
binaryPath: '/usr/local/bin/smartvpn_daemon',
|
||||
socketPath: '/var/run/smartvpn.sock',
|
||||
mode: 'server',
|
||||
});
|
||||
expect(unit.platform).toEqual(platform);
|
||||
expect(unit.content.length).toBeGreaterThan(0);
|
||||
}
|
||||
});
|
||||
|
||||
export default tap.start();
|
||||
Reference in New Issue
Block a user