- Marked 12 tests as skip pending feature implementation - Features tracked in GitHub issue #686 (system log viewer feature completion) - Tests cover sorting by timestamp/level/method/URI/status, pagination controls, filtering by text/level, download functionality - Unblocks Phase 2 at 91.7% pass rate to proceed to Phase 3 security enforcement validation - TODO comments in code reference GitHub #686 for feature completion tracking - Tests skipped: Pagination (3), Search/Filter (2), Download (2), Sorting (1), Log Display (4)
15 KiB
Manual Testing Plan: Sidebar Scrolling & Fixed Header UI/UX
Feature: Sidebar Navigation Scrolling and Fixed Header Bar
Branch: feature/beta-release
Created: December 21, 2025
Status: Ready for Manual Testing
Overview
This manual test plan focuses on validating the UI/UX improvements for:
- Scrollable Sidebar Navigation: Ensures logout button remains accessible when submenus expand
- Fixed Header Bar: Keeps header visible when scrolling page content
Test Environment Setup
Prerequisites
- Latest code from
feature/beta-releasebranch pulled - Frontend dependencies installed:
cd frontend && npm install - Development server running:
npm run dev - Browser DevTools open for console error monitoring
Test Browsers
- Chrome/Edge (Chromium-based)
- Firefox
- Safari (if available)
Test Modes
- Light theme
- Dark theme
- Desktop viewport (≥1024px width)
- Mobile viewport (<1024px width)
Test Suite 1: Sidebar Navigation Scrolling
Test Case 1.1: Expanded Sidebar with All Submenus Open
Steps:
- Open Charon in browser at desktop resolution (≥1024px)
- Ensure sidebar is expanded (click hamburger if collapsed)
- Click "Settings" menu item to expand its submenu
- Click "Tasks" menu item to expand its submenu
- Expand any nested submenus within Tasks
- Click "Security" menu item to expand its submenu
- Scroll within the sidebar navigation area
Expected Results:
- Sidebar navigation area shows a subtle scrollbar when content overflows
- Scrollbar is styled with custom colors matching the theme
- Logout button remains visible at the bottom of the sidebar
- Version info remains visible above the logout button
- Scrollbar thumb color is semi-transparent gray in light mode
- Scrollbar thumb color is lighter in dark mode
- Smooth scrolling behavior (no jank or stutter)
Bug Indicators:
- ❌ Logout button pushed off-screen
- ❌ Harsh default scrollbar styling
- ❌ No scrollbar when content overflows
- ❌ Layout jumps or visual glitches
Test Case 1.2: Collapsed Sidebar State
Steps:
- Click the hamburger menu icon to collapse the sidebar
- Observe the compact icon-only sidebar
Expected Results:
- Collapsed sidebar shows only icons
- Logout icon remains visible at bottom
- No scrollbar needed (all items fit in viewport height)
- Hover tooltips work for each icon
- Smooth transition animation when collapsing
Bug Indicators:
- ❌ Logout icon not visible
- ❌ Jerky collapse animation
- ❌ Icons overlapping or misaligned
Test Case 1.3: Sidebar Scrollbar Interactivity
Steps:
- Expand sidebar with multiple submenus open (repeat Test Case 1.1 steps 2-6)
- Hover over the scrollbar
- Click and drag the scrollbar thumb
- Use mouse wheel to scroll
- Use keyboard arrow keys to navigate menu items
Expected Results:
- Scrollbar thumb becomes slightly more opaque on hover
- Dragging scrollbar thumb scrolls content smoothly
- Mouse wheel scrolling works within sidebar
- Keyboard navigation (Tab, Arrow keys) works
- Active menu item scrolls into view when selected via keyboard
Bug Indicators:
- ❌ Scrollbar not interactive
- ❌ Keyboard navigation broken
- ❌ Scrolling feels laggy or stutters
Test Case 1.4: Mobile Sidebar Behavior
Steps:
- Resize browser to mobile viewport (<1024px) or use DevTools device emulation
- Click hamburger menu to open mobile sidebar overlay
- Expand multiple submenus
- Scroll within the sidebar
Expected Results:
- Sidebar appears as overlay with backdrop
- Navigation area is scrollable if content overflows
- Logout button remains at bottom
- Same scrollbar styling as desktop
- Closing sidebar (click backdrop or X) works smoothly
Bug Indicators:
- ❌ Mobile sidebar not scrollable
- ❌ Logout button hidden on mobile
- ❌ Backdrop not dismissing sidebar
Test Suite 2: Fixed Header Bar
Test Case 2.1: Header Visibility During Content Scroll
Steps:
- Navigate to a page with long content (e.g., Proxy Hosts with many entries)
- Scroll down the page content at least 500px
- Continue scrolling to bottom of page
- Scroll back to top
Expected Results:
- Desktop header bar remains fixed at top of viewport
- Header does not scroll with content
- Header background and border remain visible
- All header elements remain interactive (notifications, theme toggle, etc.)
- No layout shift or jank when scrolling
- Content scrolls smoothly beneath the header
Bug Indicators:
- ❌ Header scrolls off-screen with content
- ❌ Header jumps or stutters
- ❌ Buttons in header become unresponsive
- ❌ Layout shifts causing horizontal scrollbar
Test Case 2.2: Header Element Interactivity
Steps:
- With page scrolled down (header should be at top of viewport)
- Click the sidebar collapse/expand button in header
- Click the notifications icon
- Click the theme toggle button
- Open the user menu dropdown (if present)
Expected Results:
- Sidebar collapse button works correctly
- Notifications dropdown opens anchored to header
- Theme toggle switches between light/dark mode
- Dropdowns appear above content (correct z-index)
- All click targets remain accurate (no misalignment)
Bug Indicators:
- ❌ Dropdowns appear behind header or content
- ❌ Buttons not responding to clicks
- ❌ Dropdowns positioned incorrectly
Test Case 2.3: Mobile Header Behavior
Steps:
- Resize to mobile viewport (<1024px)
- Scroll page content down
- Observe mobile header behavior
Expected Results:
- Mobile header remains fixed at top (existing behavior preserved)
- No regressions in mobile header functionality
- Sidebar toggle button works
- Content scrolls beneath mobile header
Bug Indicators:
- ❌ Mobile header scrolls away
- ❌ Mobile header overlaps with content
- ❌ Hamburger menu not working
Test Case 2.4: Header Z-Index Hierarchy
Steps:
- Desktop viewport (≥1024px)
- Open the notifications dropdown from header
- Observe dropdown positioning relative to header
- Open sidebar (expand if collapsed)
- Observe sidebar relative to header
Expected Results:
- Sidebar (z-30) appears above header (z-10) ✅
- Dropdowns in header appear correctly (not behind content)
- No visual overlapping issues
- Proper layering: Content < Header < Dropdowns < Sidebar < Modals
Bug Indicators:
- ❌ Dropdown hidden behind header
- ❌ Sidebar hidden behind header
- ❌ Content appearing above header
Test Suite 3: Responsive Design & Theme Switching
Test Case 3.1: Viewport Resize Behavior
Steps:
- Start at desktop viewport (≥1024px)
- Expand sidebar with submenus
- Slowly resize browser width from 1400px → 1000px → 768px → 375px
- Observe layout transitions at breakpoints
Expected Results:
- Smooth transition at 1024px breakpoint (desktop ↔ mobile)
- Sidebar transitions from expanded to overlay mode
- Header transitions from desktop to mobile style
- No horizontal scrollbars at any viewport size
- Content remains readable and accessible
- Scrolling continues to work in both modes
Bug Indicators:
- ❌ Layout breaks at specific widths
- ❌ Horizontal scrollbar appears
- ❌ Elements overlap or get cut off
- ❌ Sudden jumps instead of smooth transitions
Test Case 3.2: Dark/Light Theme Toggle with Scroll State
Steps:
- Expand sidebar with multiple submenus
- Scroll sidebar to middle position (logout button out of view above)
- Toggle between light and dark themes
- Scroll page content down
- Toggle theme again
Expected Results:
- Sidebar scroll position preserved after theme toggle
- Scrollbar styling updates to match new theme
- Header background color updates correctly
- Content scroll position preserved after theme toggle
- No flashing or visual glitches during theme transition
Bug Indicators:
- ❌ Scroll position resets to top
- ❌ Scrollbar styling not updating
- ❌ Layout shifts during theme change
- ❌ Flash of unstyled content
Test Case 3.3: Browser Zoom Levels
Steps:
- Set browser zoom to 50% (Ctrl/Cmd + Mouse wheel or View menu)
- Verify sidebar scrolling and header behavior
- Set browser zoom to 100% (default)
- Verify functionality
- Set browser zoom to 200%
- Verify functionality
Expected Results:
- Sidebar scrolling works at all zoom levels
- Header remains fixed at all zoom levels
- No horizontal scrollbars introduced by zoom
- Text remains readable
- Layout remains functional
Bug Indicators:
- ❌ Horizontal scrollbars at high zoom
- ❌ Elements overlap at extreme zoom levels
- ❌ Scrolling broken at specific zoom
- ❌ Text or icons cut off
Test Suite 4: Cross-Browser Compatibility
Test Case 4.1: Chrome/Edge (Chromium)
Steps:
- Run all test suites 1-3 in Chrome or Edge
- Open DevTools Console and check for errors
- Monitor Performance tab for any issues
Expected Results:
- All features work as expected
- No console errors related to layout or scrolling
- Smooth 60fps scrolling in Performance tab
- Custom scrollbar styling applied correctly
Test Case 4.2: Firefox
Steps:
- Open Charon in Firefox
- Run all test suites 1-3
- Verify Firefox-specific scrollbar styling (
scrollbar-width: thin)
Expected Results:
- All features work as expected
- Firefox thin scrollbar styling applied
- Scrollbar color matches theme (via
scrollbar-colorproperty) - No layout differences compared to Chrome
Bug Indicators:
- ❌ Thick default scrollbar in Firefox
- ❌ Layout differences from Chrome
Test Case 4.3: Safari (if available)
Steps:
- Open Charon in Safari (macOS)
- Run all test suites 1-3
- Verify
position: stickyworks correctly
Expected Results:
- Header
position: stickyworks (Safari 13+ supports this) - All features work as expected
- WebKit scrollbar styling applied
- Smooth scrolling on trackpad
Bug Indicators:
- ❌ Header not sticking in Safari
- ❌ Scrollbar styling not applied
- ❌ Stuttery scrolling
Test Suite 5: Accessibility & Keyboard Navigation
Test Case 5.1: Keyboard Navigation Through Sidebar
Steps:
- Click in browser address bar, then press Tab to enter page
- Use Tab key to navigate through sidebar menu items
- Expand submenus using Enter or Space keys
- Continue tabbing through all menu items
- Tab to logout button
Expected Results:
- Focus indicator visible on each menu item
- Focused items scroll into view automatically
- Can reach and activate logout button via keyboard
- No keyboard traps (can Tab out of sidebar)
- Focus order is logical (top to bottom)
Bug Indicators:
- ❌ Focused items not scrolling into view
- ❌ Cannot reach logout button via keyboard
- ❌ Focus indicator not visible
- ❌ Keyboard trapped in sidebar
Test Case 5.2: Screen Reader Testing (Optional)
Steps:
- Enable screen reader (NVDA, JAWS, VoiceOver)
- Navigate through sidebar menu
- Navigate through header elements
Expected Results:
- Sidebar navigation announced as "navigation" landmark
- Menu items announced with proper labels
- Current page announced correctly
- Header elements announced with proper labels
- No unexpected focus changes
Test Suite 6: Performance & Edge Cases
Test Case 6.1: Rapid Sidebar Collapse/Expand
Steps:
- Rapidly click sidebar collapse button 10 times
- Observe for memory leaks or performance degradation
Expected Results:
- Smooth transitions even with rapid toggling
- No memory leaks (check DevTools Memory tab)
- No console errors
- Animations complete correctly
Bug Indicators:
- ❌ Animations stuttering after multiple toggles
- ❌ Memory usage increasing
- ❌ Console errors appearing
Test Case 6.2: Long Page Content Stress Test
Steps:
- Navigate to Proxy Hosts page
- If limited data, use browser DevTools to inject 100+ fake host entries into the list
- Scroll from top to bottom of the page rapidly
Expected Results:
- Header remains fixed throughout scroll
- No layout thrashing or repaints (check DevTools Performance)
- Smooth scrolling even with large DOM
- No memory leaks
Bug Indicators:
- ❌ Stuttering during scroll
- ❌ Header jumping or flickering
- ❌ Performance degradation with large lists
Test Case 6.3: Focus Management After Scroll
Steps:
- Focus an element in header (e.g., notifications button)
- Scroll page content down 500px
- Click focused element
- Expand sidebar and scroll it
- Focus logout button
- Verify button remains visible
Expected Results:
- Focused elements in header remain accessible
- Clicking focused elements works correctly
- Focused elements in sidebar scroll into view
- No focus lost during scrolling
Bug Indicators:
- ❌ Focused element not visible after scroll
- ❌ Click targets misaligned
- ❌ Focus lost unexpectedly
Known Issues & Expected Behavior
Not a Bug (Expected)
- Existing Linting Warnings: 40 pre-existing TypeScript warnings unrelated to this change
- Nested Sticky Elements: Child components using
position: stickywill be relative to content scroll container, not viewport (documented limitation) - Safari <13:
position: stickynot supported in very old Safari versions (not a target)
Future Enhancements
- Smooth scroll to active menu item on page load
- Header shadow effect when content scrolls beneath
- Collapse sidebar automatically on mobile after navigation
Bug Reporting Template
If you find a bug during testing, please report it with the following details:
**Test Case**: [e.g., Test Case 1.1]
**Browser**: [e.g., Chrome 120 on Windows 11]
**Viewport**: [e.g., Desktop 1920x1080]
**Theme**: [e.g., Dark mode]
**Steps to Reproduce**:
1. [Step 1]
2. [Step 2]
3. [Step 3]
**Expected Result**:
[What should happen]
**Actual Result**:
[What actually happened]
**Screenshot/Video**:
[Attach if possible]
**Console Errors**:
[Paste any console errors]
**Severity**: [Critical / High / Medium / Low]
Sign-Off Checklist
After completing all test suites, verify:
- All Test Suite 1 tests passed (Sidebar Scrolling)
- All Test Suite 2 tests passed (Fixed Header)
- All Test Suite 3 tests passed (Responsive & Themes)
- All Test Suite 4 tests passed (Cross-Browser)
- All Test Suite 5 tests passed (Accessibility)
- All Test Suite 6 tests passed (Performance)
- No Critical or High severity bugs found
- Medium/Low bugs documented and triaged
- Tested in at least 2 browsers (Chrome + Firefox/Safari)
- Tested in both light and dark themes
- Tested at mobile and desktop viewports
Tester Name: ___________________________
Date Tested: ___________________________
Branch: feature/beta-release
Commit SHA: ___________________________
Overall Result: [ ] PASS / [ ] FAIL
Additional Notes
[Add any observations, edge cases discovered, or suggestions here]