Files
ccs/tests/unit/commands/config-command-options.test.ts
T

51 lines
1.7 KiB
TypeScript

import { describe, expect, it } from 'bun:test';
import { parseConfigCommandArgs } from '../../../src/commands/config-command-options';
describe('config command options parser', () => {
it('defaults to system bind behavior without explicit host', () => {
const result = parseConfigCommandArgs([]);
expect(result.help).toBe(false);
expect(result.error).toBeUndefined();
expect(result.options.host).toBeUndefined();
expect(result.options.hostProvided).toBe(false);
});
it('parses explicit host and port overrides', () => {
const result = parseConfigCommandArgs(['--host', '0.0.0.0', '--port', '4100']);
expect(result.error).toBeUndefined();
expect(result.options.host).toBe('0.0.0.0');
expect(result.options.hostProvided).toBe(true);
expect(result.options.port).toBe(4100);
});
it('rejects missing host values', () => {
const result = parseConfigCommandArgs(['--host']);
expect(result.error).toBe('Invalid host value');
});
it('accepts port 65535 and rejects port 65536', () => {
const accepted = parseConfigCommandArgs(['--port', '65535']);
const rejected = parseConfigCommandArgs(['--port', '65536']);
expect(accepted.error).toBeUndefined();
expect(accepted.options.port).toBe(65535);
expect(rejected.error).toBe('Invalid port number');
});
it('rejects unknown options', () => {
const result = parseConfigCommandArgs(['--hst', '0.0.0.0']);
expect(result.error).toBe('Unexpected arguments: --hst 0.0.0.0');
});
it('rejects unexpected trailing positionals', () => {
const result = parseConfigCommandArgs(['--port', '3000', 'extra']);
expect(result.error).toBe('Unexpected arguments: extra');
});
});