/ src / lib / server / tasks / task-result.test.ts
task-result.test.ts
 1  import { describe, it } from 'node:test'
 2  import assert from 'node:assert/strict'
 3  import { extractTaskResult } from '@/lib/server/tasks/task-result'
 4  
 5  describe('extractTaskResult', () => {
 6    it('limits artifact extraction to messages from the current run window', () => {
 7      const messages = [
 8        {
 9          role: 'assistant',
10          time: 1_000,
11          text: 'old run artifact: /api/uploads/wiki-old.png',
12        },
13        {
14          role: 'assistant',
15          time: 2_000,
16          text: 'new run artifact: /api/uploads/wiki-new.png',
17        },
18      ]
19  
20      const result = extractTaskResult(messages, 'done', { sinceTime: 1_500 })
21      assert.deepEqual(result.artifacts.map((a) => a.url), ['/api/uploads/wiki-new.png'])
22    })
23  
24    it('excludes messages without timestamps when sinceTime is provided', () => {
25      const messages = [
26        {
27          role: 'assistant',
28          text: 'undated artifact: /api/uploads/undated.png',
29        },
30        {
31          role: 'assistant',
32          time: 5_000,
33          text: 'dated artifact: /api/uploads/dated.png',
34        },
35      ]
36  
37      const result = extractTaskResult(messages, 'done', { sinceTime: 4_000 })
38      assert.deepEqual(result.artifacts.map((a) => a.url), ['/api/uploads/dated.png'])
39    })
40  })