n8n/packages/@n8n/syslog-client/test/client.test.ts
James Gee 279d6fd10f
feat(core): Add TLS support to Syslog client (#23304)
Signed-off-by: James Gee <1285296+geemanjs@users.noreply.github.com>
2026-01-06 21:15:02 +01:00

85 lines
2.3 KiB
TypeScript

import * as os from 'os';
import { Facility, Severity, SyslogClient, Transport } from '../src';
import { TLS_CERTIFICATE } from './setup';
describe('SyslogClient - Core', () => {
describe('Constructor and defaults', () => {
it('should set default options correctly', () => {
const client = new SyslogClient();
expect(client.target).toBe('127.0.0.1');
expect(client.port).toBe(514);
expect(client.syslogHostname).toBe(os.hostname());
expect(client.tcpTimeout).toBe(10000);
expect(client.transport).toBe(Transport.Udp);
client.close();
});
it('should accept target parameter', () => {
const client = new SyslogClient('127.0.0.2');
expect(client.target).toBe('127.0.0.2');
expect(client.port).toBe(514);
expect(client.syslogHostname).toBe(os.hostname());
client.close();
});
it('should accept custom hostname', () => {
const client = new SyslogClient('127.0.0.2', {
syslogHostname: 'test',
});
expect(client.target).toBe('127.0.0.2');
expect(client.syslogHostname).toBe('test');
client.close();
});
it('should accept custom port and timeout', () => {
const client = new SyslogClient('127.0.0.2', {
syslogHostname: 'test',
port: 5555,
tcpTimeout: 50,
});
expect(client.port).toBe(5555);
expect(client.tcpTimeout).toBe(50);
client.close();
});
it('should accept TCP transport option', () => {
const client = new SyslogClient('127.0.0.2', {
port: 5555,
transport: Transport.Tcp,
});
expect(client.transport).toBe(Transport.Tcp);
client.close();
});
it('should accept TLS transport with certificate', () => {
const client = new SyslogClient('127.0.0.2', {
port: 6514,
transport: Transport.Tls,
tlsCA: TLS_CERTIFICATE,
});
expect(client.transport).toBe(Transport.Tls);
expect(client.tlsCA).toBe(TLS_CERTIFICATE);
client.close();
});
it('should accept facility and severity options', () => {
const client = new SyslogClient('127.0.0.1', {
facility: Facility.Mail,
severity: Severity.Critical,
});
expect(client.facility).toBe(Facility.Mail);
expect(client.severity).toBe(Severity.Critical);
client.close();
});
it('should accept RFC format option', () => {
const client = new SyslogClient('127.0.0.1', {
rfc3164: false,
});
expect(client.rfc3164).toBe(false);
client.close();
});
});
});