Files
OmniRoute/tests/unit/memory-settings.test.mjs

69 lines
1.8 KiB
JavaScript

import assert from "node:assert/strict";
import { describe, test } from "node:test";
import {
DEFAULT_MEMORY_SETTINGS,
normalizeMemorySettings,
toMemoryRetrievalConfig,
toMemorySettingsUpdates,
} from "../../src/lib/memory/settings.ts";
describe("memory settings helpers", () => {
test("normalizeMemorySettings applies defaults and clamps persisted values", () => {
const settings = normalizeMemorySettings({
memoryEnabled: "yes",
memoryMaxTokens: 20001,
memoryRetentionDays: 0,
memoryStrategy: "unsupported",
skillsEnabled: true,
});
assert.deepEqual(settings, {
enabled: DEFAULT_MEMORY_SETTINGS.enabled,
maxTokens: 16000,
retentionDays: 1,
strategy: DEFAULT_MEMORY_SETTINGS.strategy,
skillsEnabled: true,
});
});
test("toMemorySettingsUpdates maps UI fields to persisted keys", () => {
assert.deepEqual(
toMemorySettingsUpdates({
enabled: false,
maxTokens: 4096,
retentionDays: 21,
strategy: "hybrid",
skillsEnabled: true,
}),
{
memoryEnabled: false,
memoryMaxTokens: 4096,
memoryRetentionDays: 21,
memoryStrategy: "hybrid",
skillsEnabled: true,
}
);
});
test("toMemoryRetrievalConfig disables injection when memory is off and remaps recent strategy", () => {
assert.deepEqual(
toMemoryRetrievalConfig({
enabled: true,
maxTokens: 0,
retentionDays: 10,
strategy: "recent",
skillsEnabled: false,
}),
{
enabled: false,
maxTokens: 0,
retrievalStrategy: "exact",
autoSummarize: false,
persistAcrossModels: false,
retentionDays: 10,
scope: "apiKey",
}
);
});
});