From e40998c85e34e4282daf73f537df2737793a686e Mon Sep 17 00:00:00 2001 From: siddseethepalli Date: Thu, 2 Apr 2026 01:20:26 +0000 Subject: [PATCH] fix: pass messageId in iOS lifecycle tests to match message_complete guard The guard added in f97ad8aee skips message_complete events without messageId while isSending is true. These two tests send messages then call MessageCompleteMessage() without a messageId, causing the handler to no-op. Co-authored-by: Claude Opus 4.6 (1M context) --- clients/ios/Tests/ConversationLifecycleIOSTests.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/clients/ios/Tests/ConversationLifecycleIOSTests.swift b/clients/ios/Tests/ConversationLifecycleIOSTests.swift index 25c5cf3d6b8..731e2b34366 100644 --- a/clients/ios/Tests/ConversationLifecycleIOSTests.swift +++ b/clients/ios/Tests/ConversationLifecycleIOSTests.swift @@ -148,8 +148,9 @@ final class ConversationLifecycleIOSTests: XCTestCase { XCTAssertEqual(vm.messages.count, 2) XCTAssertEqual(vm.messages[1].role, .assistant) - // Step 3: Message completes - vm.handleServerMessage(.messageComplete(MessageCompleteMessage())) + // Step 3: Message completes (messageId must be non-nil; the guard in + // ChatActionHandler skips message_complete without messageId while isSending) + vm.handleServerMessage(.messageComplete(MessageCompleteMessage(messageId: "msg-1"))) XCTAssertFalse(vm.isSending) XCTAssertFalse(vm.messages[1].isStreaming) } @@ -163,14 +164,14 @@ final class ConversationLifecycleIOSTests: XCTestCase { vm.sendMessage() vm.handleServerMessage(.assistantTextDelta(AssistantTextDeltaMessage(text: "First answer"))) vm.flushStreamingBuffer() - vm.handleServerMessage(.messageComplete(MessageCompleteMessage())) + vm.handleServerMessage(.messageComplete(MessageCompleteMessage(messageId: "msg-1"))) // Second exchange vm.inputText = "Second question" vm.sendMessage() vm.handleServerMessage(.assistantTextDelta(AssistantTextDeltaMessage(text: "Second answer"))) vm.flushStreamingBuffer() - vm.handleServerMessage(.messageComplete(MessageCompleteMessage())) + vm.handleServerMessage(.messageComplete(MessageCompleteMessage(messageId: "msg-2"))) XCTAssertEqual(vm.messages.count, 4) XCTAssertEqual(vm.messages[0].role, .user)