@@ -188,11 +188,14 @@ describe("summarizeConversation", () => {
188188 expect ( maybeRemoveImageBlocks ) . toHaveBeenCalled ( )
189189
190190 // Verify the structure of the result
191- // The result should be: original messages (except last N) + summary + last N messages
192- expect ( result . messages . length ) . toBe ( messages . length + 1 ) // Original + summary
191+ // The result should be: first message + summary + last N messages
192+ expect ( result . messages . length ) . toBe ( 1 + 1 + N_MESSAGES_TO_KEEP ) // First + summary + last N
193+
194+ // Check that the first message is preserved
195+ expect ( result . messages [ 0 ] ) . toEqual ( messages [ 0 ] )
193196
194197 // Check that the summary message was inserted correctly
195- const summaryMessage = result . messages [ result . messages . length - N_MESSAGES_TO_KEEP - 1 ]
198+ const summaryMessage = result . messages [ 1 ]
196199 expect ( summaryMessage . role ) . toBe ( "assistant" )
197200 expect ( summaryMessage . content ) . toBe ( "This is a summary" )
198201 expect ( summaryMessage . isSummary ) . toBe ( true )
@@ -395,7 +398,8 @@ describe("summarizeConversation", () => {
395398 )
396399
397400 // Should successfully summarize
398- expect ( result . messages . length ) . toBe ( messages . length + 1 ) // Original + summary
401+ // Result should be: first message + summary + last N messages
402+ expect ( result . messages . length ) . toBe ( 1 + 1 + N_MESSAGES_TO_KEEP ) // First + summary + last N
399403 expect ( result . cost ) . toBe ( 0.03 )
400404 expect ( result . summary ) . toBe ( "Concise summary" )
401405 expect ( result . error ) . toBeUndefined ( )
0 commit comments