e2e: Re-enable the recovered tests and settle the ignored-test decisions#6573
Conversation
PR checklist ✅All required conditions are satisfied:
🎉 Great job! This PR is ready for review. |
|
@CodeRabbit review |
✅ Action performedReview finished.
|
SDK Size Comparison 📏
|
WalkthroughCompose sample E2E robot helpers and assertions were updated for text-targeted quoted replies and conditional quote checks. Channel preview expectations changed, several ignored tests were re-enabled, one test was removed, and quoted reply scenarios now cover message, file, Giphy, and thread cases. ChangesCompose E2E test updates
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested labels: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
stream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/robots/UserRobotMessageListAsserts.kt (1)
68-75: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winUse correct locator for the non-displayed assertion.
Currently, if
isDisplayedisfalseandisClickableistrue, theelsebranch ignores theisClickableparameter and asserts that the non-clickableMessage.textdisappears instead of the correctclickableText.Extracting the locator assignment out of the
ifblock resolves this test logic discrepancy.♻️ Proposed refactor
- if (isDisplayed) { - val textLocator = (if (isClickable) Message.clickableText else Message.text) - .text(text) + val textLocator = (if (isClickable) Message.clickableText else Message.text).text(text) + if (isDisplayed) { assertTrue(textLocator.waitDisplayed()) assertTrue(Message.timestamp.isDisplayed()) } else { - assertFalse(Message.text.text(text).waitToDisappear().isDisplayed()) + assertFalse(textLocator.waitToDisappear().isDisplayed()) }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@stream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/robots/UserRobotMessageListAsserts.kt` around lines 68 - 75, Update the assertion logic in the message-list assertion method to create the text locator once using the existing isClickable choice between Message.clickableText and Message.text, then reuse that locator in both branches. Ensure the non-displayed path asserts disappearance of the selected locator rather than always using Message.text.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@stream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/robots/UserRobotMessageListAsserts.kt`:
- Around line 68-75: Update the assertion logic in the message-list assertion
method to create the text locator once using the existing isClickable choice
between Message.clickableText and Message.text, then reuse that locator in both
branches. Ensure the non-displayed path asserts disappearance of the selected
locator rather than always using Message.text.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: c9ea42e0-e497-4340-bf27-166f1ca539f2
📒 Files selected for processing (7)
stream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/robots/UserRobot.ktstream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/robots/UserRobotMessageListAsserts.ktstream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/tests/ChannelListTests.ktstream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/tests/GiphyTests.ktstream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/tests/MessageDeliveryStatusTests.ktstream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/tests/MessageListTests.ktstream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/tests/QuotedReplyTests.kt
💤 Files with no reviewable changes (2)
- stream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/tests/MessageDeliveryStatusTests.kt
- stream-chat-android-compose-sample/src/androidTestE2eDebug/kotlin/io/getstream/chat/android/compose/tests/MessageListTests.kt
|



Goal
Settle the fate of the remaining ignored e2e tests, based on the per-test verification recorded on AND-1304. Eleven tests come back to the active suite, and the ones that stay ignored now point at real, open tickets instead of canceled ones. Part of AND-1304.
Implementation
No messages yet, no sender prefix).Message deletedwhen the only message is deleted (documented intent ingetLastMessageIncludingDeleted, and iOS shows the same placeholder), sotest_channelPreviewShowsNoMessages_whenTheOnlyMessageInChannelIsDeletedbecametest_channelPreviewShowsMessageDeleted_...and expects the placeholder.30where the mock quotes the oldest message (1, matching the active sibling test and iOS), and the attachment variants asserted reply text that their robot calls never send (iOS asserts only the quote plus the attachment). The user variants now quote deterministically by message text after scrolling to the top, instead of by an index that Compose's LazyColumn cannot reach.test_commandsMenuCloses_whenUserTapsOnMessageListasserted old-composer behavior; the redesigned suggestion list is driven by the input content and iOS has no counterpart. Its orphaned robot helper went with it.assertMessage's absence branch now checks at the selector level),assertQuotedMessage'stextparameter is optional to mirror the iOS helper shape, and aquoteMessage(text, quotedMessageText)overload for by-text quoting.Ticket trail: AND-256, AND-272, and AND-960 are reopened with their tests as the acceptance check; the other linked tickets stay canceled with closing comments.
Testing
Every re-enabled test passed locally against the mock server on the first attempt, verified per batch while making the changes (retry data on the device checked to rule out pass-on-retry). Reproduce with:
No UI changes.
Summary by CodeRabbit
Bug Fixes
Tests