- Add HTTP endpoint tests to mimic browser interactions - Move old test files from test/ to tests/ directory - Add comprehensive endpoint tests for tabs, profiles, presets, patterns - Add README documenting test structure and how to run tests
80 lines
1.5 KiB
Markdown
80 lines
1.5 KiB
Markdown
# Tests
|
|
|
|
This directory contains tests for the LED Controller project.
|
|
|
|
## Directory Structure
|
|
|
|
- `test_endpoints.py` - HTTP endpoint tests that mimic web browser requests (runs against 192.168.4.1)
|
|
- `test_ws.py` - WebSocket tests
|
|
- `test_p2p.py` - ESP-NOW P2P tests
|
|
- `models/` - Model unit tests
|
|
- `web.py` - Local development web server
|
|
|
|
## Running Tests
|
|
|
|
### Browser Tests (Real Browser Automation)
|
|
|
|
Tests the web interface in an actual browser using Selenium:
|
|
|
|
```bash
|
|
python tests/test_browser.py
|
|
```
|
|
|
|
These tests:
|
|
- Open a real Chrome browser
|
|
- Navigate to the device at 192.168.4.1
|
|
- Interact with UI elements (buttons, forms, modals)
|
|
- Test complete user workflows
|
|
- Verify visual elements and interactions
|
|
|
|
**Requirements:**
|
|
```bash
|
|
pip install selenium
|
|
# Also need ChromeDriver installed and in PATH
|
|
# Download from: https://chromedriver.chromium.org/
|
|
```
|
|
|
|
### Endpoint Tests (Browser-like HTTP)
|
|
|
|
Tests HTTP endpoints by making requests to the device at 192.168.4.1:
|
|
|
|
```bash
|
|
python tests/test_endpoints.py
|
|
```
|
|
|
|
These tests:
|
|
- Mimic web browser requests with proper headers
|
|
- Handle cookies for session management
|
|
- Test all CRUD operations (GET, POST, PUT, DELETE)
|
|
- Verify responses and status codes
|
|
|
|
**Requirements:**
|
|
```bash
|
|
pip install requests
|
|
```
|
|
|
|
### WebSocket Tests
|
|
|
|
```bash
|
|
python tests/test_ws.py
|
|
```
|
|
|
|
**Requirements:**
|
|
```bash
|
|
pip install websockets
|
|
```
|
|
|
|
### Model Tests
|
|
|
|
```bash
|
|
python tests/models/run_all.py
|
|
```
|
|
|
|
### Local Development Server
|
|
|
|
Run the local development server (port 5000):
|
|
|
|
```bash
|
|
python tests/web.py
|
|
```
|