Skip to content

Commit a749b05

Browse files
committed
fix: tests
1 parent 8af250a commit a749b05

File tree

1 file changed

+61
-27
lines changed

1 file changed

+61
-27
lines changed

web-app/src/lib/__tests__/messages.test.ts

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,15 @@ describe('CompletionMessagesBuilder', () => {
4343
const builder = new CompletionMessagesBuilder(messages, systemInstruction)
4444

4545
const result = builder.getMessages()
46-
expect(result).toHaveLength(1)
46+
expect(result).toHaveLength(2)
4747
expect(result[0]).toEqual({
4848
role: 'system',
4949
content: systemInstruction,
5050
})
51+
expect(result[1]).toEqual({
52+
role: 'user',
53+
content: '.',
54+
})
5155
})
5256

5357
it('should filter out messages with errors', () => {
@@ -78,8 +82,9 @@ describe('CompletionMessagesBuilder', () => {
7882
const builder = new CompletionMessagesBuilder(messages)
7983
const result = builder.getMessages()
8084

81-
expect(result).toHaveLength(1)
82-
expect(result[0].content).toBe('Hello there!')
85+
expect(result).toHaveLength(2)
86+
expect(result[0].content).toBe('.')
87+
expect(result[1].content).toBe('Hello there!')
8388
})
8489

8590
it('should preserve user message content without normalization', () => {
@@ -171,8 +176,12 @@ describe('CompletionMessagesBuilder', () => {
171176
builder.addAssistantMessage('<think>Processing...</think>Hello!')
172177

173178
const result = builder.getMessages()
174-
expect(result).toHaveLength(1)
179+
expect(result).toHaveLength(2)
175180
expect(result[0]).toEqual({
181+
role: 'user',
182+
content: '.',
183+
})
184+
expect(result[1]).toEqual({
176185
role: 'assistant',
177186
content: 'Hello!',
178187
refusal: undefined,
@@ -189,8 +198,12 @@ describe('CompletionMessagesBuilder', () => {
189198
)
190199

191200
const result = builder.getMessages()
192-
expect(result).toHaveLength(1)
201+
expect(result).toHaveLength(2)
193202
expect(result[0]).toEqual({
203+
role: 'user',
204+
content: '.',
205+
})
206+
expect(result[1]).toEqual({
194207
role: 'assistant',
195208
content: 'I cannot help with that',
196209
refusal: 'Content policy violation',
@@ -218,8 +231,12 @@ describe('CompletionMessagesBuilder', () => {
218231
)
219232

220233
const result = builder.getMessages()
221-
expect(result).toHaveLength(1)
234+
expect(result).toHaveLength(2)
222235
expect(result[0]).toEqual({
236+
role: 'user',
237+
content: '.',
238+
})
239+
expect(result[1]).toEqual({
223240
role: 'assistant',
224241
content: 'Let me check the weather',
225242
refusal: undefined,
@@ -247,8 +264,12 @@ describe('CompletionMessagesBuilder', () => {
247264
)
248265

249266
const result = builder.getMessages()
250-
expect(result).toHaveLength(1)
267+
expect(result).toHaveLength(2)
251268
expect(result[0]).toEqual({
269+
role: 'user',
270+
content: '.',
271+
})
272+
expect(result[1]).toEqual({
252273
role: 'assistant',
253274
content: 'Here are the results',
254275
refusal: 'Cannot search sensitive content',
@@ -264,8 +285,12 @@ describe('CompletionMessagesBuilder', () => {
264285
builder.addToolMessage('Weather data: 72°F', 'call_123')
265286

266287
const result = builder.getMessages()
267-
expect(result).toHaveLength(1)
288+
expect(result).toHaveLength(2)
268289
expect(result[0]).toEqual({
290+
role: 'user',
291+
content: '.',
292+
})
293+
expect(result[1]).toEqual({
269294
role: 'tool',
270295
content: 'Weather data: 72°F',
271296
tool_call_id: 'call_123',
@@ -280,10 +305,11 @@ describe('CompletionMessagesBuilder', () => {
280305

281306
const result = builder.getMessages()
282307
// getMessages() inserts a filler message between consecutive tool messages
283-
expect(result).toHaveLength(3)
284-
expect(result[0].tool_call_id).toBe('call_1')
285-
expect(result[1].role).toBe('assistant') // filler message
286-
expect(result[2].tool_call_id).toBe('call_2')
308+
expect(result).toHaveLength(4)
309+
expect(result[0].role).toBe('user') // initial filler message
310+
expect(result[1].tool_call_id).toBe('call_1')
311+
expect(result[2].role).toBe('assistant') // filler message
312+
expect(result[3].tool_call_id).toBe('call_2')
287313
})
288314

289315
it('should handle empty tool content', () => {
@@ -292,9 +318,13 @@ describe('CompletionMessagesBuilder', () => {
292318
builder.addToolMessage('', 'call_123')
293319

294320
const result = builder.getMessages()
295-
expect(result).toHaveLength(1)
296-
expect(result[0].content).toBe('')
297-
expect(result[0].tool_call_id).toBe('call_123')
321+
expect(result).toHaveLength(2)
322+
expect(result[0]).toEqual({
323+
role: 'user',
324+
content: '.',
325+
})
326+
expect(result[1].content).toBe('')
327+
expect(result[1].tool_call_id).toBe('call_123')
298328
})
299329
})
300330

@@ -345,7 +375,7 @@ describe('CompletionMessagesBuilder', () => {
345375
)
346376

347377
const result = builder.getMessages()
348-
expect(result[0].content).toBe('The answer is 42.')
378+
expect(result[1].content).toBe('The answer is 42.')
349379
})
350380

351381
it('should handle nested thinking tags', () => {
@@ -356,7 +386,7 @@ describe('CompletionMessagesBuilder', () => {
356386
)
357387

358388
const result = builder.getMessages()
359-
expect(result[0].content).toBe('More thinking</think>Final answer')
389+
expect(result[1].content).toBe('More thinking</think>Final answer')
360390
})
361391

362392
it('should handle multiple thinking blocks', () => {
@@ -367,7 +397,7 @@ describe('CompletionMessagesBuilder', () => {
367397
)
368398

369399
const result = builder.getMessages()
370-
expect(result[0].content).toBe('Answer<think>Second</think>More content')
400+
expect(result[1].content).toBe('Answer<think>Second</think>More content')
371401
})
372402

373403
it('should handle content without thinking tags', () => {
@@ -376,7 +406,7 @@ describe('CompletionMessagesBuilder', () => {
376406
builder.addAssistantMessage('Just a normal response')
377407

378408
const result = builder.getMessages()
379-
expect(result[0].content).toBe('Just a normal response')
409+
expect(result[1].content).toBe('Just a normal response')
380410
})
381411

382412
it('should handle empty content after removing thinking', () => {
@@ -385,7 +415,7 @@ describe('CompletionMessagesBuilder', () => {
385415
builder.addAssistantMessage('<think>Only thinking content</think>')
386416

387417
const result = builder.getMessages()
388-
expect(result[0].content).toBe('')
418+
expect(result[1].content).toBe('')
389419
})
390420

391421
it('should handle unclosed thinking tags', () => {
@@ -396,7 +426,7 @@ describe('CompletionMessagesBuilder', () => {
396426
)
397427

398428
const result = builder.getMessages()
399-
expect(result[0].content).toBe(
429+
expect(result[1].content).toBe(
400430
'<think>Unclosed thinking tag... Regular content'
401431
)
402432
})
@@ -409,7 +439,7 @@ describe('CompletionMessagesBuilder', () => {
409439
)
410440

411441
const result = builder.getMessages()
412-
expect(result[0].content).toBe('Clean answer')
442+
expect(result[1].content).toBe('Clean answer')
413443
})
414444

415445
it('should remove analysis channel reasoning content', () => {
@@ -420,7 +450,7 @@ describe('CompletionMessagesBuilder', () => {
420450
)
421451

422452
const result = builder.getMessages()
423-
expect(result[0].content).toBe('The final answer is 42.')
453+
expect(result[1].content).toBe('The final answer is 42.')
424454
})
425455

426456
it('should handle analysis channel without final message', () => {
@@ -431,7 +461,7 @@ describe('CompletionMessagesBuilder', () => {
431461
)
432462

433463
const result = builder.getMessages()
434-
expect(result[0].content).toBe('<|channel|>analysis<|message|>Only analysis content here...')
464+
expect(result[1].content).toBe('<|channel|>analysis<|message|>Only analysis content here...')
435465
})
436466

437467
it('should handle analysis channel with multiline content', () => {
@@ -442,7 +472,7 @@ describe('CompletionMessagesBuilder', () => {
442472
)
443473

444474
const result = builder.getMessages()
445-
expect(result[0].content).toBe('Based on my analysis, here is the result.')
475+
expect(result[1].content).toBe('Based on my analysis, here is the result.')
446476
})
447477

448478
it('should handle both think and analysis channel tags', () => {
@@ -453,7 +483,7 @@ describe('CompletionMessagesBuilder', () => {
453483
)
454484

455485
const result = builder.getMessages()
456-
expect(result[0].content).toBe('Final response')
486+
expect(result[1].content).toBe('Final response')
457487
})
458488
})
459489

@@ -518,11 +548,15 @@ describe('CompletionMessagesBuilder', () => {
518548

519549
const result = builder.getMessages()
520550

521-
expect(result).toHaveLength(1)
551+
expect(result).toHaveLength(2)
522552
expect(result[0]).toEqual({
523553
role: 'system',
524554
content: 'System instruction',
525555
})
556+
expect(result[1]).toEqual({
557+
role: 'user',
558+
content: '.',
559+
})
526560
})
527561
})
528562
})

0 commit comments

Comments
 (0)