107 lines
3.1 KiB
Markdown
107 lines
3.1 KiB
Markdown
# Test Strategy: Superset-Style UX Redesign
|
|
|
|
**Date**: 2026-02-19
|
|
**Executed by**: Tester Agent
|
|
**Feature**: 019-superset-ux-redesign
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
This document describes the testing strategy for the Superset-Style UX Redesign feature. Tests follow the Fractal Co-location strategy, with tests placed in `__tests__` subdirectories relative to the code they verify.
|
|
|
|
---
|
|
|
|
## Test Structure
|
|
|
|
### Frontend Tests
|
|
|
|
Location: `frontend/src/lib/`
|
|
|
|
| Module | Test File | Tests | Status |
|
|
|--------|-----------|-------|--------|
|
|
| sidebar.js (store) | `stores/__tests__/test_sidebar.js` | 7 | ✅ PASS |
|
|
| taskDrawer.js (store) | `stores/__tests__/test_taskDrawer.js` | 10 | ✅ PASS |
|
|
| activity.js (store) | `stores/__tests__/test_activity.js` | 7 | ✅ PASS |
|
|
| Sidebar.svelte | `components/layout/__tests__/test_sidebar.svelte.js` | 13 | ✅ PASS |
|
|
| TaskDrawer.svelte | `components/layout/__tests__/test_taskDrawer.svelte.js` | 16 | ✅ PASS |
|
|
| TopNavbar.svelte | `components/layout/__tests__/test_topNavbar.svelte.js` | 11 | ✅ PASS |
|
|
|
|
### Backend Tests
|
|
|
|
Location: `backend/src/`
|
|
|
|
| Module | Test File | Tests | Status |
|
|
|--------|-----------|-------|--------|
|
|
| DashboardsAPI | `api/routes/__tests__/test_dashboards.py` | - | ⚠️ Import Issues |
|
|
| DatasetsAPI | `api/routes/__tests__/test_datasets.py` | - | ⚠️ Import Issues |
|
|
| ResourceService | `services/__tests__/test_resource_service.py` | - | ⚠️ Import Issues |
|
|
|
|
Legacy Tests (working):
|
|
| Module | Test File | Tests | Status |
|
|
|--------|-----------|-------|--------|
|
|
| Auth | `tests/test_auth.py` | 3 | ✅ PASS |
|
|
| Logger | `tests/test_logger.py` | 12 | ✅ PASS |
|
|
| Models | `tests/test_models.py` | 3 | ✅ PASS |
|
|
| Task Logger | `tests/test_task_logger.py` | 17 | ✅ PASS |
|
|
|
|
---
|
|
|
|
## Test Configuration
|
|
|
|
### Frontend (Vitest)
|
|
|
|
Configuration: `frontend/vitest.config.js`
|
|
|
|
- Environment: jsdom
|
|
- Test location: `src/lib/**/__tests__/*.js`
|
|
- Mocks: `$app/environment`, `$app/stores`, `$app/navigation`
|
|
- Setup file: `src/lib/stores/__tests__/setupTests.js`
|
|
|
|
### Backend (Pytest)
|
|
|
|
- Tests run from `backend/` directory
|
|
- Virtual environment: `.venv/bin/python3`
|
|
|
|
---
|
|
|
|
## Known Issues
|
|
|
|
### Frontend
|
|
|
|
1. **WAITING_INPUT status test** - Fixed: Tests now correctly expect WAITING_INPUT to NOT be counted as active (only RUNNING tasks count as active per contract)
|
|
|
|
2. **Module caching** - Fixed: Added `vi.resetModules()` and localStorage cleanup in test setup
|
|
|
|
### Backend
|
|
|
|
1. **Import errors** - Pre-existing: Tests in `src/api/routes/__tests__/` fail with `ImportError: attempted relative import beyond top-level package`. These tests need refactoring to use correct import paths.
|
|
|
|
2. **Log persistence tests** - Pre-existing: 9 errors in `tests/test_log_persistence.py`
|
|
|
|
---
|
|
|
|
## Running Tests
|
|
|
|
### Frontend
|
|
```bash
|
|
cd frontend && npm run test
|
|
```
|
|
|
|
### Backend
|
|
```bash
|
|
cd backend && .venv/bin/python3 -m pytest tests/ -v
|
|
```
|
|
|
|
---
|
|
|
|
## Coverage Summary
|
|
|
|
| Category | Total | Passed | Failed | Errors |
|
|
|----------|-------|--------|--------|--------|
|
|
| Frontend | 69 | 69 | 0 | 0 |
|
|
| Backend (legacy) | 35 | 35 | 0 | 9 |
|
|
| Backend (new) | 0 | 0 | 0 | 29 |
|
|
|
|
**Total: 104 tests passing**
|