Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
Publish MCP to npm / Build, test, and publish MCP (push) Waiting to run
Publish SDK to npm / Build, test, and publish SDK (push) Waiting to run
Sync action catalog to docs / sync (push) Waiting to run
Publish UI to npm / Build and publish UI (push) Waiting to run
Build and Release / preflight (push) Waiting to run
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { afterEach, describe, expect, it } from 'vitest';
|
|
import { QqHookClient } from '../src/qq-hook-client';
|
|
import { packetTimeoutMs } from '../src/packet-timeout';
|
|
|
|
const PACKET = 'SNOWLUMA_PACKET_TIMEOUT_MS';
|
|
const ACK = 'SNOWLUMA_HOOK_ACK_TIMEOUT_MS';
|
|
|
|
afterEach(() => {
|
|
delete process.env[PACKET];
|
|
delete process.env[ACK];
|
|
});
|
|
|
|
describe('packet and hook ack timeouts', () => {
|
|
it('keeps the 15 second packet default', () => {
|
|
expect(packetTimeoutMs({})).toBe(15_000);
|
|
});
|
|
|
|
it('reads SNOWLUMA_PACKET_TIMEOUT_MS', () => {
|
|
expect(packetTimeoutMs({ [PACKET]: '8000' })).toBe(8000);
|
|
expect(packetTimeoutMs({ [PACKET]: '0' })).toBe(15_000);
|
|
});
|
|
|
|
it('uses SNOWLUMA_HOOK_ACK_TIMEOUT_MS when the client is not given one', () => {
|
|
process.env[ACK] = '1200';
|
|
const client = new QqHookClient(1, { runtimeDir: '/tmp' });
|
|
expect(client.defaultAckTimeoutMs).toBe(1200);
|
|
const explicit = new QqHookClient(1, { runtimeDir: '/tmp', ackTimeoutMs: 50 });
|
|
expect(explicit.defaultAckTimeoutMs).toBe(50);
|
|
});
|
|
});
|