calendar-agent-retrieval-unit.test.mjs
52 lines 2.1 KB
Raw
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd feat(calendar): enforce agent context tiers in retrieval AP… Human minor ⚠ breaking 1 day ago
1 /**
2 * Tier 1 — UNIT: pure agent-retrieval helpers (tier parsing, effective-tier math).
3 *
4 * Verifies the server-side enforcement primitives in isolation, with no store I/O.
5 * @see lib/calendar/agent-retrieval.mjs
6 */
7 import { describe, it } from 'node:test';
8 import assert from 'node:assert/strict';
9 import {
10 parseAgentContextTier,
11 resolveEffectiveTier,
12 AGENT_RETRIEVAL_MAX_TIER,
13 } from '../lib/calendar/agent-retrieval.mjs';
14
15 describe('parseAgentContextTier', () => {
16 it('accepts integers and numeric strings 0–2', () => {
17 assert.equal(parseAgentContextTier(0), 0);
18 assert.equal(parseAgentContextTier(1), 1);
19 assert.equal(parseAgentContextTier(2), 2);
20 assert.equal(parseAgentContextTier('2'), 2);
21 assert.equal(parseAgentContextTier(' 1 '), 1);
22 });
23
24 it('rejects the deferred v0 ceiling (tier 3–4) and out-of-range values', () => {
25 assert.equal(AGENT_RETRIEVAL_MAX_TIER, 2);
26 assert.throws(() => parseAgentContextTier(3), /ceiling is 2/);
27 assert.throws(() => parseAgentContextTier(4), /ceiling is 2/);
28 assert.throws(() => parseAgentContextTier(-1), /0, 1, or 2/);
29 });
30
31 it('rejects non-integer input', () => {
32 assert.throws(() => parseAgentContextTier('abc'), /integer/);
33 assert.throws(() => parseAgentContextTier(1.5), /integer/);
34 assert.throws(() => parseAgentContextTier(null), /integer/);
35 });
36 });
37
38 describe('resolveEffectiveTier', () => {
39 it('fails closed to 0 when enabled_for_agents is false', () => {
40 assert.equal(resolveEffectiveTier({ enabled_for_agents: false, agent_context_tier_max: 4 }, 2), 0);
41 });
42
43 it('caps at the per-calendar agent_context_tier_max', () => {
44 assert.equal(resolveEffectiveTier({ enabled_for_agents: true, agent_context_tier_max: 1 }, 2), 1);
45 assert.equal(resolveEffectiveTier({ enabled_for_agents: true, agent_context_tier_max: 0 }, 2), 0);
46 });
47
48 it('never exceeds the requested tier or the v0 ceiling', () => {
49 assert.equal(resolveEffectiveTier({ enabled_for_agents: true, agent_context_tier_max: 4 }, 1), 1);
50 assert.equal(resolveEffectiveTier({ enabled_for_agents: true, agent_context_tier_max: 4 }, 2), 2);
51 });
52 });
File History 1 commit
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd feat(calendar): enforce agent context tiers in retrieval AP… Human minor 1 day ago