Co-authored-by: Isaac Sanchez <isanchez-hawkins@arize.com>
38 lines
1008 B
JavaScript
38 lines
1008 B
JavaScript
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
import { createOpenCodeNetworkRuntime } from './network-runtime.js';
|
|
|
|
const createRuntime = () => createOpenCodeNetworkRuntime({
|
|
state: {
|
|
openCodePort: 4096,
|
|
openCodeBaseUrl: null,
|
|
openCodeApiPrefix: '',
|
|
openCodeApiPrefixDetected: false,
|
|
openCodeApiDetectionTimer: null,
|
|
},
|
|
getOpenCodeAuthHeaders: () => ({}),
|
|
});
|
|
|
|
describe('OpenCode network runtime', () => {
|
|
afterEach(() => {
|
|
vi.useRealTimers();
|
|
vi.unstubAllGlobals();
|
|
});
|
|
|
|
it('clears the probe abort timer when readiness fetch rejects', async () => {
|
|
vi.useFakeTimers();
|
|
vi.setSystemTime(0);
|
|
vi.stubGlobal('fetch', vi.fn(async () => {
|
|
throw new Error('offline');
|
|
}));
|
|
|
|
const runtime = createRuntime();
|
|
const readyPromise = runtime.waitForReady('http://127.0.0.1:4096', 1);
|
|
|
|
await vi.advanceTimersByTimeAsync(100);
|
|
await expect(readyPromise).resolves.toBe(false);
|
|
|
|
expect(vi.getTimerCount()).toBe(0);
|
|
});
|
|
});
|