40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { createDefaultState, render3proxyConfig } from './config';
|
|
|
|
describe('render3proxyConfig', () => {
|
|
it('renders enabled services with their own ports and per-service ACLs', () => {
|
|
const state = createDefaultState();
|
|
const config = render3proxyConfig(state, {
|
|
rootDir: '/runtime',
|
|
configPath: '/runtime/generated/3proxy.cfg',
|
|
counterPath: '/runtime/state/counters.3cf',
|
|
reportDir: '/runtime/state/reports',
|
|
logPath: '/runtime/logs/3proxy.log',
|
|
pidPath: '/runtime/3proxy.pid',
|
|
});
|
|
|
|
expect(config).toContain('socks -p1080 -u2');
|
|
expect(config).toContain('socks -p2080 -u2');
|
|
expect(config).toContain('admin -p8081 -s');
|
|
expect(config).toContain('allow night-shift,ops-east');
|
|
expect(config).toContain('allow lab-unlimited,burst-user');
|
|
});
|
|
|
|
it('excludes paused users from credentials and ACLs', () => {
|
|
const state = createDefaultState();
|
|
state.userRecords[0].paused = true;
|
|
const config = render3proxyConfig(state, {
|
|
rootDir: '/runtime',
|
|
configPath: '/runtime/generated/3proxy.cfg',
|
|
counterPath: '/runtime/state/counters.3cf',
|
|
reportDir: '/runtime/state/reports',
|
|
logPath: '/runtime/logs/3proxy.log',
|
|
pidPath: '/runtime/3proxy.pid',
|
|
});
|
|
|
|
expect(config).not.toContain('night-shift:CL:kettle!23');
|
|
expect(config).not.toContain('allow night-shift,ops-east');
|
|
expect(config).toContain('allow ops-east');
|
|
});
|
|
});
|