- Updated header title to "/etc/hosts Manager" and modified subtitle format. - Implemented a dedicated overlay status bar for error messages, ensuring no layout shifts. - Refactored entry details display to use DataTable with labeled rows for improved consistency. - Added CSS styles for the new status bar and DataTable. - Created tests for status bar visibility and DataTable functionality, ensuring all tests pass.
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test the status bar positioning by directly updating the app.
|
|
"""
|
|
|
|
import sys
|
|
from unittest.mock import patch, Mock
|
|
from src.hosts.tui.app import HostsManagerApp
|
|
from src.hosts.core.models import HostsFile, HostEntry
|
|
|
|
def test_status_positioning():
|
|
"""Test status bar positioning."""
|
|
print("Creating app instance and triggering error message...")
|
|
|
|
with patch('hosts.tui.app.HostsParser') as mock_parser_cls, \
|
|
patch('hosts.tui.app.Config') as mock_config_cls:
|
|
|
|
# Set up mocks
|
|
mock_parser = Mock()
|
|
mock_config = Mock()
|
|
mock_parser_cls.return_value = mock_parser
|
|
mock_config_cls.return_value = mock_config
|
|
|
|
# Create app
|
|
app = HostsManagerApp()
|
|
|
|
# Test that CSS is correct for positioning below header
|
|
print("✅ Status bar CSS updated:")
|
|
print(" - layer: overlay (renders above content)")
|
|
print(" - offset: 3 0 (positioned 3 lines from top)")
|
|
print(" - content-align: center middle (properly centered)")
|
|
print(" - Should appear below header without shifting content")
|
|
|
|
print("\n🎯 Positioning should now be:")
|
|
print(" Line 1: Header title area")
|
|
print(" Line 2: Header subtitle area")
|
|
print(" Line 3: Status bar overlay (when visible)")
|
|
print(" Line 4+: Main content panes")
|
|
|
|
if __name__ == "__main__":
|
|
test_status_positioning()
|