[APIView] Improve E2E scenario test coverage for the Conversations tab
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 143
Description
The Code Panel has solid end-to-end (E2E) test coverage, but the **Conversations tab** currently lacks equivalent scenario coverage. This gap is allowing bugs to reach production that would otherwise be caught earlier in the development cycle.
Add E2E scenario tests for all core operations that users can perform in the Conversations tab, mirroring the level of coverage that exists for the Code Panel.
### Scenarios to Cover
#### Core Navigation and Rendering
- [x] Open Conversations tab from Review page and verify URL/state changes.
- [ ] Render grouped threads by API version in expected order.
- [ ] Verify comments in a thread are shown in chronological order.
- [ ] Verify “go to code” link navigates/scrolls to correct element
- [ ] Thread attached to non-active revision navigates correctly to that revision/code.
#### Comment Interactions
- [ ] Reply to an existing thread and verify comment appears immediately.
- [ ] Start reply editor, then cancel; verify no comment is posted.
- [ ] Edit comment and verify updated text persists after refresh.
- [ ] Cancel edit and verify original text remains.
- [ ] Prevent saving empty edit/reply
- [ ] Delete a comment and verify behavior
- [ ] Verify "Copy link" action generates shareable URL with anchor
- [ ] Open “Create GitHub issue” submenu and verify target links work.
#### Reactions
- [ ] Thumbs-up toggle on eligible comment.
- [ ] Thumbs-up untoggle removes current user reaction.
- [ ] Reaction count increments/decrements correctly.
- [ ] Tooltip/user list reflects current reactors.
- [ ] Thumbs-down on AI comment opens feedback dialog before applying vote.
- [ ] Cancel AI downvote feedback does not apply downvote.
- [ ] Confirm AI downvote feedback applies vote and persists.
- [ ] Downvote toggle off for previously downvoted AI comment.
#### Severity
- [ ] Edit the severity of a comment (e.g., should fix -> must fix)
- [ ] Verify severity label updates correctly in the thread header
- [ ] Verify severity-based filtering reflects new severity immediately.
- [ ] Cancel severity edit leaves value unchanged.
- [ ] Severity editing disabled for diagnostic threads.
- [ ] Severity editing visibility/permissions by role are enforced.
#### Filtering
- [ ] Status filter: Active only.
- [ ] Status filter: Resolved only.
- [ ] Status filter: All.
- [ ] Severity filter: each individual severity.
- [ ] Severity filter: multi-select combinations.
- [ ] Source filter: each individual source
- [ ] Source filter: multi-select combinations
- [ ] Combined filters: status + severity + source intersection
- [ ] Clear/reset filters restores default results
- [ ] Unknown severity filter appears only when unknown-severity threads exists
- [ ] Unknown severity filter selection correctly includes/excludes unknown threads
#### Loading, Empty, and No-Match States
- [ ] Loading spinner is shown while conversations data is loading.
- [ ] “This review has no comments” state when no threads exist.
- [ ] “No threads match current filters” state when filters exclude everything.
- [ ] Reset/Clear filters returns full thread list from no-match state.
#### Resolve / Unresolve Behavior
- [ ] Resolve active thread and verify state changes to resolved
- [ ] Unresolve resolved thread and verify it reappears in active.
- [ ] Verify resolved thread collapsed/expandable behavior (“Show/Hide”).
- [ ] Verify resolver identity and participants metadata display correctly.
- [ ] Verify resolve/unresolve button label toggles correctly.
- [ ] Verify active thread count updates when resolving/unresolving.
- [ ] Verify unresolved/resolved movement under status filters in real time.
#### Comment Source Specific Behavior
- [ ] Human comments: upvote available; downvote not shown
- [ ] AI comments: AI badge shown; info popover opens when metadata exists.
- [ ] AI comments: delete action prompts reason dialog where required.
- [ ] Diagnostic comments: resolve button hidden/disabled.
- [ ] Diagnostic comments: edit/delete restrictions enforced.
- [ ] Diagnostic comments: severity edit disabled and explanatory tooltip shown.
- [ ] Verify warning banner appears when unresolved diagnostic comments exceed display limit.
- [ ] Verify info banner appears when resolved diagnostic comments exceed display limit.
- [ ] Verify banner does not appear for large numbers of non-diagnostic comments.
Contributor guide
Research direction
Start by locating the existing Code Panel E2E scenario tests and the Conversations tab entry point. Add equivalent coverage for the listed navigation, interactions, reactions, severity, filtering, state, resolve/unresolve, and comment-source scenarios. Done means the core checklist scenarios pass and the tests catch incorrect UI state, navigation, persistence, permissions, and filtering behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- frontend, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100