mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 07:51:52 +00:00
test(memory): add test for circular agentContext in renderPromptWithMemoryContext
Adds a test case to `test/memory-formatter.test.mjs` to verify that `renderPromptWithMemoryContext` gracefully handles circular references in `agentContext` by falling back to string representation instead of throwing a JSON serialization error. This ensures the edge case at `src/services/memory/formatter.js:125` is covered. Co-authored-by: PR0M3TH3AN <[email protected]>
This commit is contained in:
1 parent
264e2b5f61
commit
73c5f22932
1 file changed
+31
@@ -193,3 +193,34 @@ test('renderPromptWithMemoryContext handles missing query or service', async ()
|
||||
const output = await renderPromptWithMemoryContext(params);
|
||||
assert.equal(output, 'Base prompt');
|
||||
});
|
||||
|
||||
test('renderPromptWithMemoryContext handles circular agentContext gracefully', async () => {
|
||||
const circular = {};
|
||||
circular.self = circular;
|
||||
|
||||
let capturedQuery = '';
|
||||
const memoryService = {
|
||||
async getRelevantMemories({ query }) {
|
||||
capturedQuery = query;
|
||||
return [];
|
||||
},
|
||||
async updateMemoryUsage() {}
|
||||
};
|
||||
|
||||
const params = {
|
||||
basePrompt: 'Base prompt',
|
||||
userRequest: 'Hello',
|
||||
agentContext: circular,
|
||||
agent_id: 'agent-1',
|
||||
memoryService,
|
||||
env: { TORCH_MEMORY_RETRIEVAL_ENABLED: 'true' }
|
||||
};
|
||||
|
||||
const output = await renderPromptWithMemoryContext(params);
|
||||
|
||||
// It should not throw.
|
||||
// The query should contain the string representation of the circular object.
|
||||
// String(circular) is "[object Object]"
|
||||
assert.ok(capturedQuery.includes('[object Object]'), 'Query should contain the stringified circular object fallback');
|
||||
assert.ok(output.includes('Base prompt'), 'Output should contain the base prompt');
|
||||
});
|
||||
Reference in new issue
Block a user