diff --git a/dashboards/tracker-web/src/__tests__/health.test.ts b/dashboards/tracker-web/src/__tests__/health.test.ts index a3dbe12e..d9971635 100644 --- a/dashboards/tracker-web/src/__tests__/health.test.ts +++ b/dashboards/tracker-web/src/__tests__/health.test.ts @@ -2,7 +2,7 @@ * Tests for GET /api/health (tracker dashboard) */ -import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; +import { describe, it, expect, afterEach } from 'vitest'; import { GET } from '@/app/api/health/route'; @@ -23,8 +23,14 @@ describe('GET /api/health', () => { const data = await res.json(); expect(data.status).toBe('ok'); expect(data.service).toBe('tracker-dashboard'); - expect(data.timestamp).toBeDefined(); - expect(data.checks).toBeInstanceOf(Array); + expect(data.timestamp).toMatch(/^\d{4}-\d{2}-\d{2}T/); + expect(data.checks).toEqual([ + { + name: 'env', + status: 'pass', + message: '3 required vars set', + }, + ]); }); it('returns degraded when env vars are missing', async () => { @@ -36,6 +42,7 @@ describe('GET /api/health', () => { expect(res.status).toBe(503); const data = await res.json(); expect(data.status).toBe('degraded'); + expect(data.service).toBe('tracker-dashboard'); expect(data.checks[0].status).toBe('fail'); expect(data.checks[0].message).toContain('Missing'); }); diff --git a/dashboards/tracker-web/src/__tests__/telemetry.test.ts b/dashboards/tracker-web/src/__tests__/telemetry.test.ts index 5cc2e2eb..fcd95c6b 100644 --- a/dashboards/tracker-web/src/__tests__/telemetry.test.ts +++ b/dashboards/tracker-web/src/__tests__/telemetry.test.ts @@ -69,10 +69,10 @@ describe('trackEvent', () => { expect(event.eventType).toBe('info'); expect(event.module).toBe('tracker'); expect(event.eventName).toBe('item_created'); - expect(event.id).toBeDefined(); - expect(event.sessionId).toBeDefined(); - expect(event.anonymousInstallId).toBeDefined(); - expect(event.occurredAt).toBeDefined(); + expect(event.id).toBe('550e8400-e29b-41d4-a716-446655440000'); + expect(typeof event.sessionId).toBe('string'); + expect(event.anonymousInstallId).toBe('550e8400-e29b-41d4-a716-446655440000'); + expect(event.occurredAt).toMatch(/^\d{4}-\d{2}-\d{2}T/); }); it('includes optional fields when provided', () => { @@ -171,7 +171,12 @@ describe('initTelemetry', () => { const sessionEvent = payload.events.find( (e: Record) => e.eventName === 'session_started' ); - expect(sessionEvent).toBeDefined(); - expect(sessionEvent.module).toBe('app_lifecycle'); + expect(sessionEvent).toEqual( + expect.objectContaining({ + module: 'app_lifecycle', + eventType: 'info', + eventName: 'session_started', + }) + ); }); }); diff --git a/packages/llm-router/src/__tests__/router.test.ts b/packages/llm-router/src/__tests__/router.test.ts index 6f3bebc4..cf90082c 100644 --- a/packages/llm-router/src/__tests__/router.test.ts +++ b/packages/llm-router/src/__tests__/router.test.ts @@ -92,8 +92,8 @@ describe('LlmRouter', () => { expect(result.response.choices[0]!.message.content).toBe('Hello!'); expect(result.attempts).toBe(1); - expect(result.provider).toBeDefined(); - expect(result.model).toBeDefined(); + expect(result.provider).toBe('test-fast'); + expect(result.model).toBe('fast-model'); }); it('retries on 429 with fallback provider', async () => { @@ -233,8 +233,13 @@ describe('LlmRouter', () => { await router.chat({ messages: [{ role: 'user', content: 'Hello' }] }); const health = router.getHealth(); - expect(health.length).toBeGreaterThan(0); - expect(health[0]!.successes).toBe(1); + expect(health).toContainEqual( + expect.objectContaining({ + provider: 'test-fast', + model: 'fast-model', + successes: 1, + }) + ); }); it('lists available providers', () => {