agenthub/tests/discovery.test.ts

33 lines
1.0 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { discoverServer, getLanIPv4, resolveAdvertiseUrl, startDiscoveryBroadcaster } from '../src/discovery.js';
describe('discovery', () => {
it('returns a LAN IPv4 address', () => {
const ip = getLanIPv4();
expect(ip).toBeDefined();
expect(ip).not.toBe('127.0.0.1');
});
it('resolves advertise URL for 0.0.0.0 to LAN IP', () => {
const url = resolveAdvertiseUrl('0.0.0.0', 3377);
expect(url).toMatch(/^http:\/\/\d+\.\d+\.\d+\.\d+:3377$/);
});
it('resolves advertise URL for a specific host', () => {
const url = resolveAdvertiseUrl('127.0.0.1', 3377);
expect(url).toBe('http://127.0.0.1:3377');
});
it('discovers a broadcaster on localhost', async () => {
const port = 53378;
const url = 'http://127.0.0.1:3377';
const broadcaster = startDiscoveryBroadcaster(url, { port, intervalMs: 500 });
try {
const discovered = await discoverServer(3000, port);
expect(discovered).toBe(url);
} finally {
broadcaster.stop();
}
});
});