mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-04-02 16:22:20 -07:00
refactor UI backend calls to python endpoints
This commit is contained in:
95
test/ui/README.md
Normal file
95
test/ui/README.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# UI Testing Setup
|
||||
|
||||
## Selenium Tests
|
||||
|
||||
The UI test suite uses Selenium with Chrome/Chromium for browser automation and comprehensive testing.
|
||||
|
||||
### First Time Setup (Devcontainer)
|
||||
|
||||
The devcontainer includes Chromium and chromedriver. If you need to reinstall:
|
||||
|
||||
```bash
|
||||
# Install Chromium and chromedriver
|
||||
apk add --no-cache chromium chromium-chromedriver nss freetype harfbuzz ca-certificates ttf-freefont font-noto
|
||||
|
||||
# Install Selenium
|
||||
pip install selenium
|
||||
```
|
||||
|
||||
### Running Tests
|
||||
|
||||
```bash
|
||||
# Run all UI tests
|
||||
pytest test/ui/
|
||||
|
||||
# Run specific test file
|
||||
pytest test/ui/test_ui_dashboard.py
|
||||
|
||||
# Run specific test
|
||||
pytest test/ui/test_ui_dashboard.py::test_dashboard_loads
|
||||
|
||||
# Run with verbose output
|
||||
pytest test/ui/ -v
|
||||
|
||||
# Run and stop on first failure
|
||||
pytest test/ui/ -x
|
||||
```
|
||||
|
||||
### What Gets Tested
|
||||
|
||||
- ✅ **API Backend endpoints** - All Flask API endpoints work correctly
|
||||
- ✅ **Page loads** - All pages load without fatal errors (Dashboard, Devices, Network, Settings, etc.)
|
||||
- ✅ **Dashboard metrics** - Charts and device counts display
|
||||
- ✅ **Device operations** - Add, edit, delete devices via UI
|
||||
- ✅ **Network topology** - Device relationship visualization
|
||||
- ✅ **Multi-edit bulk operations** - Bulk device editing
|
||||
- ✅ **Maintenance tools** - CSV export/import, database cleanup
|
||||
- ✅ **Settings configuration** - Settings page loads and saves
|
||||
- ✅ **Notification system** - User notifications display
|
||||
- ✅ **JavaScript error detection** - No console errors on page loads
|
||||
|
||||
### Test Organization
|
||||
|
||||
Tests are organized by page/feature:
|
||||
|
||||
- `test_ui_dashboard.py` - Dashboard metrics and charts
|
||||
- `test_ui_devices.py` - Device listing and CRUD operations
|
||||
- `test_ui_network.py` - Network topology visualization
|
||||
- `test_ui_maintenance.py` - Database tools and CSV operations
|
||||
- `test_ui_multi_edit.py` - Bulk device editing
|
||||
- `test_ui_settings.py` - Settings configuration
|
||||
- `test_ui_notifications.py` - Notification system
|
||||
- `test_ui_plugins.py` - Plugin management
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
**"Could not start Chromium"**
|
||||
- Ensure Chromium is installed: `which chromium`
|
||||
- Check chromedriver: `which chromedriver`
|
||||
- Verify versions match: `chromium --version` and `chromedriver --version`
|
||||
|
||||
**"API token not available"**
|
||||
- Check `/data/config/app.conf` exists and contains `API_TOKEN=`
|
||||
- Restart backend services if needed
|
||||
|
||||
**Tests skip with "Chromium browser not available"**
|
||||
- Chromium not installed or not in PATH
|
||||
- Run: `apk add chromium chromium-chromedriver`
|
||||
|
||||
### Writing New Tests
|
||||
|
||||
See [TESTING_GUIDE.md](TESTING_GUIDE.md) for comprehensive examples of:
|
||||
- Button click testing
|
||||
- Form submission
|
||||
- AJAX request verification
|
||||
- File download testing
|
||||
- Multi-step workflows
|
||||
|
||||
**Browser launch fails**
|
||||
- Alpine Linux uses system Chromium
|
||||
- Make sure chromium package is installed: `apk info chromium`
|
||||
|
||||
**Tests timeout**
|
||||
- Increase timeout in test functions
|
||||
- Check if backend is running: `ps aux | grep python3`
|
||||
- Verify frontend is accessible: `curl http://localhost:20211`
|
||||
Reference in New Issue
Block a user