test: add tests for sessionWriteLockTimeoutMs config (#4371)
- Test default timeout value (60_000ms) - Test custom timeout from config - Test config type includes the field - Test zod schema validation (positive int, rejects negative/zero/float)
This commit is contained in:
parent
85ca0ec789
commit
7c5d26aa9c
87
src/config/config.session-write-lock-timeout.test.ts
Normal file
87
src/config/config.session-write-lock-timeout.test.ts
Normal file
@ -0,0 +1,87 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import type { AgentDefaultsConfig } from "./types.agent-defaults.js";
|
||||
import { AgentDefaultsSchema } from "./zod-schema.agent-defaults.js";
|
||||
|
||||
/**
|
||||
* Helper to resolve session write lock timeout from config.
|
||||
* Matches the pattern in session-write-lock.ts where default is 60_000ms.
|
||||
*/
|
||||
function resolveSessionWriteLockTimeout(config: {
|
||||
agents?: { defaults?: { sessionWriteLockTimeoutMs?: number } };
|
||||
}): number {
|
||||
return config.agents?.defaults?.sessionWriteLockTimeoutMs ?? 60_000;
|
||||
}
|
||||
|
||||
describe("sessionWriteLockTimeoutMs config", () => {
|
||||
it("uses default timeout when unset", () => {
|
||||
const config = {};
|
||||
expect(resolveSessionWriteLockTimeout(config)).toBe(60_000);
|
||||
});
|
||||
|
||||
it("uses default timeout when agents.defaults is empty", () => {
|
||||
const config = { agents: { defaults: {} } };
|
||||
expect(resolveSessionWriteLockTimeout(config)).toBe(60_000);
|
||||
});
|
||||
|
||||
it("uses custom timeout from config", () => {
|
||||
const config = {
|
||||
agents: {
|
||||
defaults: {
|
||||
sessionWriteLockTimeoutMs: 30_000,
|
||||
},
|
||||
},
|
||||
};
|
||||
expect(resolveSessionWriteLockTimeout(config)).toBe(30_000);
|
||||
});
|
||||
|
||||
it("accepts large timeout values", () => {
|
||||
const config = {
|
||||
agents: {
|
||||
defaults: {
|
||||
sessionWriteLockTimeoutMs: 120_000,
|
||||
},
|
||||
},
|
||||
};
|
||||
expect(resolveSessionWriteLockTimeout(config)).toBe(120_000);
|
||||
});
|
||||
|
||||
it("config type includes sessionWriteLockTimeoutMs field", () => {
|
||||
const config: AgentDefaultsConfig = {
|
||||
sessionWriteLockTimeoutMs: 45_000,
|
||||
};
|
||||
expect(config.sessionWriteLockTimeoutMs).toBe(45_000);
|
||||
});
|
||||
|
||||
it("validates positive integer timeout via zod schema", () => {
|
||||
const validConfig = { sessionWriteLockTimeoutMs: 30_000 };
|
||||
const result = AgentDefaultsSchema.safeParse(validConfig);
|
||||
expect(result.success).toBe(true);
|
||||
if (result.success) {
|
||||
expect(result.data.sessionWriteLockTimeoutMs).toBe(30_000);
|
||||
}
|
||||
});
|
||||
|
||||
it("rejects negative timeout values", () => {
|
||||
const invalidConfig = { sessionWriteLockTimeoutMs: -1000 };
|
||||
const result = AgentDefaultsSchema.safeParse(invalidConfig);
|
||||
expect(result.success).toBe(false);
|
||||
});
|
||||
|
||||
it("rejects zero timeout value", () => {
|
||||
const invalidConfig = { sessionWriteLockTimeoutMs: 0 };
|
||||
const result = AgentDefaultsSchema.safeParse(invalidConfig);
|
||||
expect(result.success).toBe(false);
|
||||
});
|
||||
|
||||
it("rejects non-integer timeout values", () => {
|
||||
const invalidConfig = { sessionWriteLockTimeoutMs: 1000.5 };
|
||||
const result = AgentDefaultsSchema.safeParse(invalidConfig);
|
||||
expect(result.success).toBe(false);
|
||||
});
|
||||
|
||||
it("allows undefined/optional timeout", () => {
|
||||
const config = {};
|
||||
const result = AgentDefaultsSchema.safeParse(config);
|
||||
expect(result.success).toBe(true);
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user