mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-08-27 20:24:21 +00:00
* feat: add authenticated agent event ingress * style: sort agent ingress imports * fix: harden agent event ingress * fix: bind event provenance to API keys * fix: inspect event input with legacy PII filters * fix: scope event status reads to source keys * fix: bind event status reads to remote sources * feat: add bound event-driven child turns * fix: harden event-bound child continuations * fix: satisfy event binding type contracts * fix: close event actor lifecycle races * fix: harden event actor dispatch continuity * fix: fence event actor resume lifecycle * fix: bind event actor state to lifecycle * fix: preserve cascade write outcomes * test: type cascade failure injection * style: sort cascade test imports * fix: harden event child lifecycle boundaries * fix: make event cleanup retryable * fix: annotate event retention clock * fix: reconcile partial cascade metadata * fix: recheck event binding expiry on resume * fix: fence event actors by retention deadline * fix: close event actor lifecycle races * fix: harden event child lease acquisition * fix: lazy-load event child lease adapter
33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
const mockGetRetentionExpiry = jest.fn();
|
|
const mockGetAgentFileRetentionExpiry = jest.fn();
|
|
|
|
jest.mock('@librechat/api', () => ({
|
|
getRetentionExpiry: (...args) => mockGetRetentionExpiry(...args),
|
|
getAgentFileRetentionExpiry: (...args) => mockGetAgentFileRetentionExpiry(...args),
|
|
}));
|
|
jest.mock('@librechat/data-schemas', () => ({
|
|
logger: {},
|
|
createTempChatExpirationDate: jest.fn(),
|
|
}));
|
|
jest.mock('~/models', () => ({ getConvo: jest.fn() }));
|
|
|
|
const { getRetentionExpiry, getAgentFileRetentionExpiry } = require('./retention');
|
|
|
|
describe('event-bound file retention', () => {
|
|
const expiredAt = new Date('2026-08-22T12:00:00.000Z');
|
|
const req = { _agentEventBindingRetention: { isTemporary: false, expiredAt } };
|
|
|
|
beforeEach(() => jest.clearAllMocks());
|
|
|
|
it('uses the trusted binding deadline for generated files', async () => {
|
|
await expect(getRetentionExpiry(req)).resolves.toEqual({ expiredAt });
|
|
expect(mockGetRetentionExpiry).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('uses the same binding deadline for agent resource files', async () => {
|
|
await expect(
|
|
getAgentFileRetentionExpiry({ req, tool_resource: 'execute_code' }),
|
|
).resolves.toEqual({ expiredAt });
|
|
expect(mockGetAgentFileRetentionExpiry).not.toHaveBeenCalled();
|
|
});
|
|
});
|