mirror of
https://github.com/tiddly-gittly/TidGi-Desktop.git
synced 2026-03-11 09:12:05 -07:00
- Implemented AgentSwitcher component with dropdown functionality for selecting agent definitions. - Integrated loading of agent definitions on dropdown open. - Added visual feedback for current selection and disabled state. feat: create ToolResultRenderer for generic tool result messages - Developed ToolResultRenderer to handle rendering of <functions_result> messages. - Included collapsible parameters and result display with error handling. - Added truncation for long results in collapsed view. test: add comprehensive tests for MessageRenderer components - Implemented tests for AskQuestionRenderer, ToolResultRenderer, ToolApprovalRenderer, and BaseMessageRenderer. - Ensured proper rendering and functionality for various message types and states. - Included pattern routing tests for MessageRenderer. feat: introduce TurnActionBar for action management in agent turns - Created TurnActionBar component for managing actions like rollback, retry, delete, and copy. - Integrated visual feedback for file changes and rollback status. - Added functionality for copying agent responses and full conversation to clipboard. feat: implement askQuestionPending for managing user responses - Developed infrastructure for handling pending ask-question requests. - Implemented promise-based blocking until user responds to agent questions. - Added timeout handling for ask-question requests.
95 lines
5.2 KiB
Gherkin
95 lines
5.2 KiB
Gherkin
Feature: Message Streaming Status
|
|
As a user
|
|
I want the send button to return to normal state after AI completes
|
|
So that I can send multiple messages consecutively
|
|
|
|
Background:
|
|
Given I add test ai settings
|
|
And I have started the mock OpenAI server without rules
|
|
Then I launch the TidGi application
|
|
And I wait for the page to load completely
|
|
And I should see a "page body" element with selector "body"
|
|
# Navigate to agent workspace
|
|
And I click on "agent workspace button and new tab button" elements with selectors:
|
|
| element description | selector |
|
|
| agent workspace | [data-testid='workspace-agent'] |
|
|
| new tab button | [data-tab-id='new-tab-button'] |
|
|
|
|
@agent @mockOpenAI @streamingStatus
|
|
Scenario: Send button returns to normal state after AI response completes
|
|
# Add mock response
|
|
Given I add mock OpenAI responses:
|
|
| response | stream |
|
|
| First reply | false |
|
|
| Second reply | false |
|
|
|
|
# Open agent chat
|
|
When I click on a "new tab button" element with selector "[data-tab-id='new-tab-button']"
|
|
And I should see a "search interface" element with selector ".aa-Autocomplete"
|
|
When I click on a "search input box" element with selector ".aa-Input"
|
|
And I should see an "autocomplete panel" element with selector ".aa-Panel"
|
|
When I click on an "agent suggestion" element with selector '[data-autocomplete-source-id="agentsSource"] .aa-ItemWrapper'
|
|
And I should see a "message input box" element with selector "[data-testid='agent-message-input']"
|
|
|
|
# Send first message
|
|
When I click on a "message input textarea" element with selector "[data-testid='agent-message-input']"
|
|
When I type "First message" in "chat input" element with selector "[data-testid='agent-message-input']"
|
|
And I press "Enter" key
|
|
Then I should see 2 messages in chat history
|
|
|
|
# Verify send button is in normal state (not streaming)
|
|
# The send icon should be visible and cancel icon should not be visible
|
|
And I should see a "send button icon" element with selector "[data-testid='send-icon']"
|
|
And I should not see a "cancel button icon" element with selector "[data-testid='cancel-icon']"
|
|
|
|
# Send second message to confirm button works after first round
|
|
When I type "Second message" in "chat input" element with selector "[data-testid='agent-message-input']"
|
|
And I press "Enter" key
|
|
Then I should see 4 messages in chat history
|
|
|
|
# Verify send button is still in normal state after second round
|
|
And I should see a "send button icon" element with selector "[data-testid='send-icon']"
|
|
And I should not see a "cancel button icon" element with selector "[data-testid='cancel-icon']"
|
|
|
|
@agent @mockOpenAI @streamingStatus @imageUpload
|
|
Scenario: Image upload streaming status and history verification
|
|
# Add mock responses
|
|
Given I add mock OpenAI responses:
|
|
| response | stream |
|
|
| Received image and text | false |
|
|
| Received second message | false |
|
|
|
|
# Open agent chat
|
|
When I click on a "new tab button" element with selector "[data-tab-id='new-tab-button']"
|
|
And I should see a "search interface" element with selector ".aa-Autocomplete"
|
|
When I click on a "search input box" element with selector ".aa-Input"
|
|
And I should see an "autocomplete panel" element with selector ".aa-Panel"
|
|
When I click on an "agent suggestion" element with selector '[data-autocomplete-source-id="agentsSource"] .aa-ItemWrapper'
|
|
And I should see a "message input box" element with selector "[data-testid='agent-message-input']"
|
|
|
|
# Set file directly on hidden input (bypasses native file dialog that would block the test)
|
|
When I set file "template/wiki/files/TiddlyWikiIconBlack.png" to file input with selector "input[type='file']"
|
|
# Verify image preview appears
|
|
Then I should see an "attachment preview" element with selector "[data-testid='attachment-preview']"
|
|
|
|
# Send message with image
|
|
When I click on a "message input textarea" element with selector "[data-testid='agent-message-input']"
|
|
When I type "Describe this image" in "chat input" element with selector "[data-testid='agent-message-input']"
|
|
And I press "Enter" key
|
|
Then I should see 2 messages in chat history
|
|
|
|
# Verify image appears in chat history
|
|
And I should see a "message image attachment" element with selector "[data-testid='message-image-attachment']"
|
|
|
|
# Verify send button returned to normal after first message
|
|
And I should see a "send button icon" element with selector "[data-testid='send-icon']"
|
|
And I should not see a "cancel button icon" element with selector "[data-testid='cancel-icon']"
|
|
|
|
# Send second message to check history includes image
|
|
When I type "Continue" in "chat input" element with selector "[data-testid='agent-message-input']"
|
|
And I press "Enter" key
|
|
Then I should see 4 messages in chat history
|
|
|
|
# Verify send button is still normal after second message
|
|
And I should see a "send button icon" element with selector "[data-testid='send-icon']"
|
|
And I should not see a "cancel button icon" element with selector "[data-testid='cancel-icon']"
|