SNOWLUMA_ variables can set the factory OneBot listen ports, WebUI TLS, packet and hook timeouts, the stream directory, file download timeout, and notification HTTP timeout. The values apply in memory and are not written back to saved config.
30 lines
1.0 KiB
TypeScript
30 lines
1.0 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);
|
|
});
|
|
}); |