-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: duplicate appdata upon reload #8
Conversation
Caution Review failedThe pull request is closed. WalkthroughThis pull request introduces a series of enhancements across multiple components in the application, focusing on improving test coverage and accessibility through the addition of data attributes for testing purposes. Significant updates include restructuring test cases in the Cypress test suites, expanding selector definitions for UI components, and modifying the user interface to streamline interactions. The changes also involve the removal of specific title keys in localization files, reflecting adjustments in the settings interface presentation. Changes
Possibly related PRs
Tip New featuresWalkthrough comment now includes:
Notes:
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (1)
yarn.lock
is excluded by!**/yarn.lock
,!**/*.lock
Files selected for processing (15)
- cypress/e2e/analytics/main.cy.ts (2 hunks)
- cypress/e2e/builder/main.cy.ts (1 hunks)
- cypress/e2e/player/main.cy.ts (2 hunks)
- src/config/selectors.ts (1 hunks)
- src/langs/en.json (1 hunks)
- src/langs/fr.json (1 hunks)
- src/modules/interaction/ParticipantInteraction.tsx (2 hunks)
- src/modules/main/BuilderView.tsx (5 hunks)
- src/modules/message/ChatBubble.tsx (2 hunks)
- src/modules/message/MessageInput.tsx (4 hunks)
- src/modules/message/MessagesPane.tsx (3 hunks)
- src/results/ConversationsView.tsx (6 hunks)
- src/settings/AssistantSettings.tsx (10 hunks)
- src/settings/ChatSettings.tsx (5 hunks)
- src/settings/ExchangesSettings.tsx (14 hunks)
Files skipped from review due to trivial changes (5)
- cypress/e2e/analytics/main.cy.ts
- src/langs/en.json
- src/langs/fr.json
- src/modules/message/ChatBubble.tsx
- src/modules/message/MessageInput.tsx
Additional comments not posted (59)
src/modules/main/BuilderView.tsx (6)
28-36
: Approved: Expanded import statement.The import statement correctly includes new constants for data attributes, aligning with the PR's objectives to enhance testability.
117-120
: Approved: Addition of data attributes for assistant settings tab.The
data-cy
attribute for the assistant settings tab enhances testability and accessibility, aligning with the PR's objectives.
127-127
: Approved: Addition of data attributes for chat settings tab.The
data-cy
attribute for the chat settings tab enhances testability and accessibility, aligning with the PR's objectives.
134-134
: Approved: Addition of data attributes for exchanges view tab.The
data-cy
attribute for the exchanges view tab enhances testability and accessibility, aligning with the PR's objectives.
151-151
: Approved: Addition of data attributes for conversations view tab.The
data-cy
attribute for the conversations view tab enhances testability and accessibility, aligning with the PR's objectives.
173-173
: Approved: Addition of data attributes for save buttons.The
data-cy
attributes for the save buttons in assistant and chat settings enhance testability and accessibility, aligning with the PR's objectives.Also applies to: 193-193
src/settings/AssistantSettings.tsx (11)
101-101
: Approved: Addition ofdata-cy
attribute for the assistant panel.The addition of the
data-cy
attribute enhances the testability of the assistant settings panel.
119-119
: Approved: Addition ofdata-cy
attribute for the assistant avatar icon.The addition of the
data-cy
attribute enhances the testability of the assistant avatar icon.
131-131
: Approved: Addition ofdata-cy
attribute for the assistant image URL input.The addition of the
data-cy
attribute enhances the testability of the assistant image URL input field.
137-137
: Approved: Addition ofdata-cy
attribute for the move up button.The addition of the
data-cy
attribute enhances the testability of the move up button in the assistant settings panel.
147-147
: Approved: Addition ofdata-cy
attribute for the move down button.The addition of the
data-cy
attribute enhances the testability of the move down button in the assistant settings panel.
162-162
: Approved: Addition ofdata-cy
attribute for the assistant name input.The addition of the
data-cy
attribute enhances the testability of the assistant name input field.
172-172
: Approved: Addition ofdata-cy
attribute for the assistant description input.The addition of the
data-cy
attribute enhances the testability of the assistant description input field.
179-179
: Approved: Addition ofdata-cy
attribute for the delete assistant button.The addition of the
data-cy
attribute enhances the testability of the delete assistant button in the assistant settings panel.
288-290
: Approved: Addition ofdata-cy
attribute for the assistant settings title.The addition of the
data-cy
attribute enhances the testability of the title in the assistant settings section.
305-305
: Approved: Addition ofdata-cy
attribute for the no assistants alert.The addition of the
data-cy
attribute enhances the testability of the alert displayed when no assistants are present.
337-337
: Approved: Addition ofdata-cy
attribute for the add assistant button.The addition of the
data-cy
attribute enhances the testability of the button used to add a new assistant.src/settings/ExchangesSettings.tsx (15)
131-131
: Approved: Addition ofdata-cy
attribute to the main panel.The addition of
data-cy={EXCHANGE_PANEL_CY}
to the main panel is correctly implemented and follows best practices for enhancing testability.
154-154
: Approved: Addition ofdata-cy
attribute to the exchange name input field.The addition of
data-cy={EXCHANGE_NAME_INPUT_CY}
to the exchange name input field is correctly implemented and will facilitate easier testing of this UI element.
160-160
: Approved: Addition ofdata-cy
attribute to the move up button.The addition of
data-cy={MOVE_UP_BUTTON_CY}
to the move up button is correctly implemented. This will help in creating more reliable tests for button functionality.
170-170
: Approved: Addition ofdata-cy
attribute to the move down button.The addition of
data-cy={MOVE_DOWN_BUTTON_CY}
to the move down button is correctly implemented. This attribute will aid in the precise targeting of this button in automated tests.
185-185
: Approved: Addition ofdata-cy
attribute to the exchange description input field.The addition of
data-cy={EXCHANGE_DESCRIPTION_INPUT_CY}
to the exchange description input field is correctly implemented and enhances the testability of this component.
195-195
: Approved: Addition ofdata-cy
attribute to the instructions input field.The addition of
data-cy={INSTRUCTIONS_INPUT_CY}
to the instructions input field is correctly implemented. This attribute will facilitate easier automation of tests involving this input field.
231-231
: Approved: Addition ofdata-cy
attribute to the assistant select dropdown.The addition of
data-cy={ASSISTANT_SELECT_CY}
to the assistant select dropdown is correctly implemented. This will help in creating more reliable tests for dropdown functionality.
238-238
: Approved: Addition ofdata-cy
attribute to assistant options.The addition of
data-cy={ASSISTANT_OPTION_CY}
to each assistant option in the dropdown menu is correctly implemented. This attribute will aid in the precise targeting of these options in automated tests.
279-279
: Approved: Addition ofdata-cy
attribute to the follow-up questions input field.The addition of
data-cy={FOLLOW_UP_QUESTIONS_INPUT_CY}
to the follow-up questions input field is correctly implemented and enhances the testability of this component.
293-293
: Approved: Addition ofdata-cy
attribute to the hard limit switch.The addition of
data-cy={HARD_LIMIT_SWITCH_CY}
to the hard limit switch is correctly implemented. This attribute will facilitate easier automation of tests involving this switch.
310-310
: Approved: Addition ofdata-cy
attribute to the on-complete instructions input field.The addition of
data-cy={ON_COMPLETE_INSTRUCTIONS_INPUT_CY}
to the on-complete instructions input field is correctly implemented and enhances the testability of this component.
320-320
: Approved: Addition ofdata-cy
attribute to the delete exchange button.The addition of
data-cy={DELETE_EXCHANGE_BUTTON_CY}
to the delete exchange button is correctly implemented. This will help in creating more reliable tests for button functionality.
435-437
: Approved: Addition ofdata-cy
attribute to the exchange settings title.The addition of
data-cy={EXCHANGE_SETTINGS_TITLE_CY}
to the title of the exchange settings section is correctly implemented and follows best practices for enhancing testability.
452-452
: Approved: Addition ofdata-cy
attribute to the no exchanges alert.The addition of
data-cy={NO_EXCHANGES_ALERT_CY}
to the alert message displayed when no exchanges are present is correctly implemented and will facilitate easier testing of this UI element.
483-483
: Approved: Addition ofdata-cy
attribute to the add exchange button.The addition of
data-cy={ADD_EXCHANGE_BUTTON_CY}
to the add exchange button is correctly implemented. This attribute will aid in the precise targeting of this button in automated tests.src/settings/ChatSettings.tsx (6)
11-17
: Approved import ofdata-cy
attribute constants.The import of constants from
src/config/selectors.ts
is correctly implemented and necessary for the addition ofdata-cy
attributes to the UI components.
41-43
: Approved addition ofdata-cy
attribute to the chat settings title.The
data-cy
attributeCHAT_SETTINGS_TITLE_CY
is correctly added to theTypography
component, enhancing the testability of the chat settings title.
51-51
: Approved addition ofdata-cy
attribute to the chat name input.The
data-cy
attributeCHAT_NAME_INPUT_CY
is correctly added to theTextField
component for the chat name, facilitating precise targeting in tests.
61-61
: Approved addition ofdata-cy
attribute to the chat description input.The
data-cy
attributeCHAT_DESCRIPTION_INPUT_CY
is correctly added to theTextField
component for the chat description, enhancing testability.
73-73
: Approved addition ofdata-cy
attribute to the chat instructions input.The
data-cy
attributeCHAT_INSTRUCTIONS_INPUT_CY
is correctly added to theTextField
component for chat instructions, improving the component's accessibility for testing.
96-96
: Approved addition ofdata-cy
attribute to the message memory switch.The
data-cy
attributeMESSAGE_MEMORY_SWITCH_CY
is correctly added to theSwitch
component, which controls message memory, enhancing its testability.src/modules/message/MessagesPane.tsx (3)
22-22
: Correct import for testing constants.The import statement correctly brings in
MESSAGE_LOADER_CY
andMESSAGE_PANE_CY
from the selectors configuration file, which are used for assigningdata-cy
attributes for testing purposes.
257-257
: Proper use ofdata-cy
for the main container.The
data-cy
attribute is correctly applied to the main container of theMessagesPane
component using theMESSAGE_PANE_CY
constant. This facilitates easier identification and interaction in automated tests.
308-308
: Correct implementation ofdata-cy
inMessageLoader
.The
data-cy
attribute is appropriately added to theMessageLoader
component using theMESSAGE_LOADER_CY
constant. This enhances testability by providing a unique identifier for the component during testing.src/results/ConversationsView.tsx (3)
32-34
: Correct import for testing constants.The import statement correctly brings in
CONVERSATIONS_VIEW_TITLE_CY
andEXPORT_ALL_BUTTON_CY
from the selectors configuration file, which are used for assigningdata-cy
attributes for testing purposes.
153-155
: Proper use ofdata-cy
for the title component.The
data-cy
attribute is correctly applied to theTypography
component using theCONVERSATIONS_VIEW_TITLE_CY
constant. This facilitates easier identification and interaction in automated tests.
164-164
: Correct implementation ofdata-cy
in "Export All" button.The
data-cy
attribute is appropriately added to the "Export All" button using theEXPORT_ALL_BUTTON_CY
constant. This enhances testability by providing a unique identifier for the button during testing.cypress/e2e/builder/main.cy.ts (1)
5-40
: Comprehensive addition of testing constants.The constants added for testing purposes are comprehensive and cover a wide range of elements within the application. This will significantly enhance the ability to automate testing and ensure that UI components can be targeted effectively.
cypress/e2e/player/main.cy.ts (12)
3-12
: Setup is correctly configured for Player View tests.The imports and
beforeEach
setup are appropriate for the tests that follow, ensuring a consistent testing environment.
26-28
: Test case for Player View visibility is well-implemented.This test correctly checks for the visibility of the Player View, which is a fundamental aspect to verify in the UI.
38-50
: Setup for MessagesPane Component tests is correctly configured.The
beforeEach
setup, including the API setup and navigation, is appropriate for the MessagesPane tests, ensuring the component is accessible for testing.
52-55
: Test case for initial message rendering in MessagesPane is effective.This test appropriately verifies that the MessagesPane is rendered with initial messages, ensuring the component's functionality from the start.
57-71
: Comprehensive test for message sending and display in MessagesPane.This test effectively simulates user interaction by typing and sending a message, then verifying its appearance in the chat, ensuring the core functionality of the messaging system.
93-105
: Setup for MessageInput Component tests is appropriately configured.The
beforeEach
setup, including API setup and navigation, correctly prepares the environment for testing the MessageInput component.
114-117
: Test case for rendering input field and buttons in MessageInput is correct.This test properly checks for the presence of the input field and send button, confirming that the basic elements of the MessageInput component are rendered as expected.
119-125
: Test case for automatic focus on input field is well-implemented.This test correctly verifies that the input field is automatically focused when the MessageInput component loads, enhancing user experience by allowing immediate interaction.
127-146
: Tests for message sending via button click and Ctrl+Enter are effective.These tests correctly simulate sending messages through different methods and verify that the messages are displayed in the chat, ensuring the functionality of the message sending features.
148-153
: Test case for clearing the input field after message sending is correctly implemented.This test ensures that the input field is cleared after a message is sent, maintaining a clean interface and readying it for the next message.
156-167
: Test case for dismissing the exchange is effectively implemented.This test correctly simulates the action of dismissing the exchange and verifies that the MessagesPane is removed from the view, ensuring the functionality of the dismiss button.
170-175
: Test case for preventing empty messages is robustly implemented.This test effectively prevents the sending of empty messages, enhancing the application's robustness against invalid inputs.
src/modules/interaction/ParticipantInteraction.tsx (2)
135-140
:useEffect
hook for setting interaction state is well-implemented.This
useEffect
hook correctly sets the interaction state based on the availability ofcurrentAppData
, ensuring that the component behaves as expected under various data conditions.
148-148
:useEffect
hook for patching interaction data is effectively implemented.This
useEffect
hook correctly handles the patching of interaction data when necessary, ensuring that updates are made accurately and only under the right conditions.
export const DELETE_EXCHANGE_BUTTON_CY = 'delete-exchange-button'; | ||
export const ADD_ASSISTANT_BUTTON_CY = 'add-exchange-button'; | ||
export const DELETE_ASSISTANT_BUTTON_CY = 'delete-exchange-button'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate selector value detected.
The constants DELETE_EXCHANGE_BUTTON_CY
and DELETE_ASSISTANT_BUTTON_CY
both have the value 'delete-exchange-button'. This is likely a mistake and could cause issues in targeting the correct elements in tests.
Suggest changing the value for DELETE_ASSISTANT_BUTTON_CY
to 'delete-assistant-button' to reflect its purpose:
- export const DELETE_ASSISTANT_BUTTON_CY = 'delete-exchange-button';
+ export const DELETE_ASSISTANT_BUTTON_CY = 'delete-assistant-button';
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
export const DELETE_EXCHANGE_BUTTON_CY = 'delete-exchange-button'; | |
export const ADD_ASSISTANT_BUTTON_CY = 'add-exchange-button'; | |
export const DELETE_ASSISTANT_BUTTON_CY = 'delete-exchange-button'; | |
export const DELETE_EXCHANGE_BUTTON_CY = 'delete-exchange-button'; | |
export const ADD_ASSISTANT_BUTTON_CY = 'add-exchange-button'; | |
export const DELETE_ASSISTANT_BUTTON_CY = 'delete-assistant-button'; |
export const ASSISTANT_SAVE_BUTTON_CY = 'save-setting-button'; | ||
export const CHAT_SAVE_BUTTON_CY = 'save-setting-button'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate selector value detected.
The constants ASSISTANT_SAVE_BUTTON_CY
and CHAT_SAVE_BUTTON_CY
both have the value 'save-setting-button'. This could lead to confusion and incorrect element targeting in tests.
Suggest changing the value for one of these constants to differentiate between them:
- export const CHAT_SAVE_BUTTON_CY = 'save-setting-button';
+ export const CHAT_SAVE_BUTTON_CY = 'chat-save-setting-button';
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
export const ASSISTANT_SAVE_BUTTON_CY = 'save-setting-button'; | |
export const CHAT_SAVE_BUTTON_CY = 'save-setting-button'; | |
export const ASSISTANT_SAVE_BUTTON_CY = 'save-setting-button'; | |
export const CHAT_SAVE_BUTTON_CY = 'chat-save-setting-button'; |
export const ADD_EXCHANGE_BUTTON_CY = 'add-exchange-button'; | ||
export const DELETE_EXCHANGE_BUTTON_CY = 'delete-exchange-button'; | ||
export const ADD_ASSISTANT_BUTTON_CY = 'add-exchange-button'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate selector value detected.
The constants ADD_EXCHANGE_BUTTON_CY
and ADD_ASSISTANT_BUTTON_CY
both have the value 'add-exchange-button'. This is likely a mistake and could cause issues in targeting the correct elements in tests.
Suggest changing the value for ADD_ASSISTANT_BUTTON_CY
to 'add-assistant-button' to reflect its purpose:
- export const ADD_ASSISTANT_BUTTON_CY = 'add-exchange-button';
+ export const ADD_ASSISTANT_BUTTON_CY = 'add-assistant-button';
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
export const ADD_EXCHANGE_BUTTON_CY = 'add-exchange-button'; | |
export const DELETE_EXCHANGE_BUTTON_CY = 'delete-exchange-button'; | |
export const ADD_ASSISTANT_BUTTON_CY = 'add-exchange-button'; | |
export const ADD_EXCHANGE_BUTTON_CY = 'add-exchange-button'; | |
export const DELETE_EXCHANGE_BUTTON_CY = 'delete-exchange-button'; | |
export const ADD_ASSISTANT_BUTTON_CY = 'add-assistant-button'; |
export const ASSISTANT_DESCRIPTION_INPUT_CY = 'exchange-description-input'; | ||
|
||
// Chat Settings and Input Selectors | ||
export const CHAT_SETTINGS_TITLE_CY = 'chat-settings-title'; | ||
export const CHAT_NAME_INPUT_CY = 'chat-name-input'; | ||
export const CHAT_DESCRIPTION_INPUT_CY = 'chat-description-input'; | ||
export const CHAT_INSTRUCTIONS_INPUT_CY = 'chat-instructions-input'; | ||
export const MESSAGE_MEMORY_SWITCH_CY = 'message-memory-switch'; | ||
|
||
// Exchange Panel and Input Selectors | ||
export const EXCHANGE_SETTINGS_TITLE_CY = 'exchange-settings-title'; | ||
export const NO_EXCHANGES_ALERT_CY = 'no-exchanges-alert'; | ||
export const EXCHANGE_PANEL_CY = 'exchange-panel'; | ||
export const EXCHANGE_NAME_INPUT_CY = 'exchange-name-input'; | ||
export const EXCHANGE_DESCRIPTION_INPUT_CY = 'exchange-description-input'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate selector value detected.
The constants ASSISTANT_DESCRIPTION_INPUT_CY
and EXCHANGE_DESCRIPTION_INPUT_CY
both have the value 'exchange-description-input'. This is likely a mistake and could cause issues in targeting the correct elements in tests.
Suggest changing the value for ASSISTANT_DESCRIPTION_INPUT_CY
to 'assistant-description-input' to reflect its purpose:
- export const ASSISTANT_DESCRIPTION_INPUT_CY = 'exchange-description-input';
+ export const ASSISTANT_DESCRIPTION_INPUT_CY = 'assistant-description-input';
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
export const ASSISTANT_DESCRIPTION_INPUT_CY = 'exchange-description-input'; | |
// Chat Settings and Input Selectors | |
export const CHAT_SETTINGS_TITLE_CY = 'chat-settings-title'; | |
export const CHAT_NAME_INPUT_CY = 'chat-name-input'; | |
export const CHAT_DESCRIPTION_INPUT_CY = 'chat-description-input'; | |
export const CHAT_INSTRUCTIONS_INPUT_CY = 'chat-instructions-input'; | |
export const MESSAGE_MEMORY_SWITCH_CY = 'message-memory-switch'; | |
// Exchange Panel and Input Selectors | |
export const EXCHANGE_SETTINGS_TITLE_CY = 'exchange-settings-title'; | |
export const NO_EXCHANGES_ALERT_CY = 'no-exchanges-alert'; | |
export const EXCHANGE_PANEL_CY = 'exchange-panel'; | |
export const EXCHANGE_NAME_INPUT_CY = 'exchange-name-input'; | |
export const EXCHANGE_DESCRIPTION_INPUT_CY = 'exchange-description-input'; | |
export const ASSISTANT_DESCRIPTION_INPUT_CY = 'assistant-description-input'; | |
// Chat Settings and Input Selectors | |
export const CHAT_SETTINGS_TITLE_CY = 'chat-settings-title'; | |
export const CHAT_NAME_INPUT_CY = 'chat-name-input'; | |
export const CHAT_DESCRIPTION_INPUT_CY = 'chat-description-input'; | |
export const CHAT_INSTRUCTIONS_INPUT_CY = 'chat-instructions-input'; | |
export const MESSAGE_MEMORY_SWITCH_CY = 'message-memory-switch'; | |
// Exchange Panel and Input Selectors | |
export const EXCHANGE_SETTINGS_TITLE_CY = 'exchange-settings-title'; | |
export const NO_EXCHANGES_ALERT_CY = 'no-exchanges-alert'; | |
export const EXCHANGE_PANEL_CY = 'exchange-panel'; | |
export const EXCHANGE_NAME_INPUT_CY = 'exchange-name-input'; | |
export const EXCHANGE_DESCRIPTION_INPUT_CY = 'exchange-description-input'; |
if (!appDataLoading && !hasPosted.current && interaction) { | ||
postAppData({ data: interaction, type: 'Interaction' }); | ||
hasPosted.current = true; | ||
} | ||
}, [interaction, postAppData]); | ||
}, [appDataLoading, interaction, postAppData]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
useEffect
hook for posting interaction data is correctly implemented but needs a clarifying comment.
This useEffect
hook effectively ensures that interaction data is posted only once and under the right conditions. However, adding a comment explaining the conditions under which the data is posted would enhance code readability and maintainability.
Consider adding a comment to this useEffect
hook to clarify the conditions under which interaction data is posted, such as:
// Post interaction data only if it hasn't been posted yet and no data is currently loading.
ac7b75e
to
9061ea1
Compare
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
data-cy
attributes for better testability across various components.Chores