feat: add tests for task caching

Travis Fischer 2023-06-28 17:26:44 -07:00
rodzic 034ea7a6c2
commit 311db19f02
1 zmienionych plików z 58 dodań i 8 usunięć

Wyświetl plik

@ -30,16 +30,66 @@ test('CalculatorTool', async (t) => {
})
})
test.only('CalculatorTool - caching', async (t) => {
test('CalculatorTool - caching', async (t) => {
const agentic = createTestAgenticRuntime()
const tool = new CalculatorTool({ agentic })
const res = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res.result, 6)
t.is(res.metadata.cacheStatus, 'miss')
expectTypeOf(res.result).toMatchTypeOf<number>()
const res00 = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res00.result, 6)
t.is(res00.metadata.cacheStatus, 'miss')
expectTypeOf(res00.result).toMatchTypeOf<number>()
const res2 = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res2.result, 6)
t.is(res2.metadata.cacheStatus, 'hit')
const res01 = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res01.result, 6)
t.is(res01.metadata.cacheStatus, 'hit')
const res02 = await tool.callWithMetadata({ expression: '4 + 3' })
t.is(res02.result, 7)
t.is(res02.metadata.cacheStatus, 'miss')
const res03 = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res03.result, 6)
t.is(res03.metadata.cacheStatus, 'hit')
const tool2 = new CalculatorTool({ agentic })
const res20 = await tool2.callWithMetadata({ expression: '2 * 3' })
t.is(res20.result, 6)
t.is(res20.metadata.cacheStatus, 'miss')
})
test('CalculatorTool - disable caching', async (t) => {
const agentic = createTestAgenticRuntime()
const tool = new CalculatorTool({
agentic,
cacheConfig: { cacheStrategy: 'none' }
})
const res00 = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res00.result, 6)
t.is(res00.metadata.cacheStatus, 'miss')
expectTypeOf(res00.result).toMatchTypeOf<number>()
const res01 = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res01.result, 6)
t.is(res01.metadata.cacheStatus, 'miss')
const res02 = await tool.callWithMetadata({ expression: '4 + 3' })
t.is(res02.result, 7)
t.is(res02.metadata.cacheStatus, 'miss')
const res03 = await tool.callWithMetadata({ expression: '2 * 3' })
t.is(res03.result, 6)
t.is(res03.metadata.cacheStatus, 'miss')
const tool2 = new CalculatorTool({
agentic,
cacheConfig: { cacheStrategy: 'default' }
})
const res20 = await tool2.callWithMetadata({ expression: '2 * 3' })
t.is(res20.result, 6)
t.is(res20.metadata.cacheStatus, 'miss')
const res21 = await tool2.callWithMetadata({ expression: '2 * 3' })
t.is(res21.result, 6)
t.is(res21.metadata.cacheStatus, 'hit')
})