audit follow-up: reduce warning hotspots in automation and gateway tests

This commit is contained in:
William Valentin
2026-02-15 22:49:45 -08:00
parent 1a075e62b0
commit e16c0bc2c7
7 changed files with 157 additions and 85 deletions
+16 -12
View File
@@ -3,6 +3,10 @@ import { CronScheduler } from './cron.js';
import type { CronJobConfig } from '../config/schema.js';
import type { InboundMessage } from '../channels/types.js';
function asCronChannelRegistry(value: unknown): ConstructorParameters<typeof CronScheduler>[1] {
return value as ConstructorParameters<typeof CronScheduler>[1];
}
function makeCronJob(overrides?: Partial<CronJobConfig>): CronJobConfig {
return {
name: 'test-job',
@@ -31,19 +35,19 @@ describe('CronScheduler', () => {
});
it('implements ChannelAdapter interface', () => {
scheduler = new CronScheduler([], mockChannelRegistry as any);
scheduler = new CronScheduler([], asCronChannelRegistry(mockChannelRegistry));
expect(scheduler.name).toBe('cron');
expect(scheduler.status).toBe('disconnected');
});
it('status changes to connected after connect()', async () => {
scheduler = new CronScheduler([], mockChannelRegistry as any);
scheduler = new CronScheduler([], asCronChannelRegistry(mockChannelRegistry));
await scheduler.connect();
expect(scheduler.status).toBe('connected');
});
it('status changes to disconnected after disconnect()', async () => {
scheduler = new CronScheduler([], mockChannelRegistry as any);
scheduler = new CronScheduler([], asCronChannelRegistry(mockChannelRegistry));
await scheduler.connect();
await scheduler.disconnect();
expect(scheduler.status).toBe('disconnected');
@@ -51,7 +55,7 @@ describe('CronScheduler', () => {
it('skips disabled jobs', async () => {
const jobs = [makeCronJob({ enabled: false })];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
const messages: InboundMessage[] = [];
scheduler.onMessage((msg: InboundMessage) => messages.push(msg));
@@ -63,7 +67,7 @@ describe('CronScheduler', () => {
it('fires a message when triggerJob is called', async () => {
const jobs = [makeCronJob()];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
const messages: InboundMessage[] = [];
scheduler.onMessage((msg: InboundMessage) => messages.push(msg));
@@ -80,7 +84,7 @@ describe('CronScheduler', () => {
it('uses isolated sender IDs when delivery mode is isolated_job', async () => {
const jobs = [makeCronJob()];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any, 'isolated_job');
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry), 'isolated_job');
const messages: InboundMessage[] = [];
scheduler.onMessage((msg: InboundMessage) => messages.push(msg));
@@ -100,7 +104,7 @@ describe('CronScheduler', () => {
mockChannelRegistry.get.mockReturnValue(mockOutputAdapter);
const jobs = [makeCronJob()];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
await scheduler.connect();
await scheduler.send('test-job', { text: 'Agent response' });
@@ -114,7 +118,7 @@ describe('CronScheduler', () => {
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
const jobs = [makeCronJob()];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
await scheduler.connect();
await scheduler.send('test-job', { text: 'Agent response' });
@@ -127,7 +131,7 @@ describe('CronScheduler', () => {
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
const jobs = [makeCronJob()];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
await scheduler.connect();
await scheduler.send('nonexistent-job', { text: 'response' });
@@ -138,7 +142,7 @@ describe('CronScheduler', () => {
it('triggerJob includes model_tier in metadata when configured', () => {
const jobs = [makeCronJob({ model_tier: 'fast' })];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
const messages: InboundMessage[] = [];
scheduler.onMessage((msg: InboundMessage) => messages.push(msg));
@@ -151,7 +155,7 @@ describe('CronScheduler', () => {
it('triggerJob metadata.modelTier is undefined when not configured', () => {
const jobs = [makeCronJob()];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
const messages: InboundMessage[] = [];
scheduler.onMessage((msg: InboundMessage) => messages.push(msg));
@@ -167,7 +171,7 @@ describe('CronScheduler', () => {
makeCronJob({ name: 'job-a' }),
makeCronJob({ name: 'job-b', enabled: false }),
];
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
scheduler = new CronScheduler(jobs, asCronChannelRegistry(mockChannelRegistry));
const names = scheduler.getJobNames();
expect(names).toEqual(['job-a', 'job-b']);