import { describe, it, beforeEach, afterEach } from "node:test"; import assert from "node:assert/strict"; import { fileURLToPath } from "node:url"; import { dirname, join } from "node:path"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); describe("Compression Settings API Schema Validation", () => { const compressionModeValues = [ "off", "lite", "standard", "aggressive", "ultra", "rtk", "stacked", ]; it("should validate all compression mode values", () => { assert.deepStrictEqual(compressionModeValues, [ "off", "lite", "standard", "aggressive", "ultra", "rtk", "stacked", ]); }); it("should validate caveman config structure", () => { const defaultCavemanConfig = { enabled: true, compressRoles: ["user"], skipRules: [], minMessageLength: 50, preservePatterns: [], }; assert.equal(defaultCavemanConfig.enabled, true); assert.deepStrictEqual(defaultCavemanConfig.compressRoles, ["user"]); assert.equal(Array.isArray(defaultCavemanConfig.skipRules), true); assert.equal(defaultCavemanConfig.minMessageLength, 50); assert.equal(Array.isArray(defaultCavemanConfig.preservePatterns), true); }); it("should validate full compression config structure", () => { const defaultConfig = { enabled: false, defaultMode: "off", autoTriggerTokens: 0, cacheMinutes: 5, preserveSystemPrompt: true, comboOverrides: {}, cavemanConfig: { enabled: true, compressRoles: ["user"], skipRules: [], minMessageLength: 50, preservePatterns: [], }, ultra: { enabled: false, compressionRate: 0.5, minScoreThreshold: 0.3, slmFallbackToAggressive: true, maxTokensPerMessage: 0, }, }; assert.equal(defaultConfig.enabled, false); assert.ok(compressionModeValues.includes(defaultConfig.defaultMode)); assert.equal(typeof defaultConfig.autoTriggerTokens, "number"); assert.equal(typeof defaultConfig.cacheMinutes, "number"); assert.equal(typeof defaultConfig.preserveSystemPrompt, "boolean"); assert.equal(typeof defaultConfig.comboOverrides, "object"); assert.equal(typeof defaultConfig.cavemanConfig, "object"); assert.equal(typeof defaultConfig.ultra, "object"); assert.equal(defaultConfig.ultra.compressionRate, 0.5); }); it("should validate all caveman compression rules are defined", async () => { const { CAVEMAN_RULES } = await import("../../../../open-sse/services/compression/cavemanRules.ts"); assert.ok(Array.isArray(CAVEMAN_RULES)); assert.ok(CAVEMAN_RULES.length >= 29, `Expected >= 29 rules, got ${CAVEMAN_RULES.length}`); for (const rule of CAVEMAN_RULES) { assert.ok(rule.name && typeof rule.name === "string", `Rule must have a name`); assert.ok(rule.pattern instanceof RegExp, `Rule ${rule.name} must have a RegExp pattern`); assert.ok( typeof rule.replacement === "string" || typeof rule.replacement === "function", `Rule ${rule.name} must have string or function replacement` ); assert.ok( rule.pattern.source !== "^$" || rule.replacement !== "", `Rule ${rule.name} must not be a no-op (empty pattern + empty replacement)` ); } }); it("should validate compression modes cover all CavemanConfig roles", () => { const validRoles = ["user", "assistant", "system"]; for (const role of validRoles) { assert.ok(validRoles.includes(role), `Role ${role} should be valid`); } assert.equal(validRoles.length, 3); }); });