Commit Graph

12 Commits

Author SHA1 Message Date
alex d3b92593d5 feat(frontend): add API client, layout, and routing
- Create Axios-based API client with sources, jobs, and dashboard endpoints
- Add responsive Layout component with navigation sidebar
- Set up React Router with Dashboard, Backups, and Settings routes
- Configure TanStack Query provider with default options
- Use lucide-react for navigation icons
2026-05-11 21:47:20 +02:00
alex 7676438466 fix(tests): resolve lazy loading errors in test_engine.py
Add await db.refresh() calls with relationship attributes before accessing
test_job.executions and execution.backups in async test context.

Fixes lazy loading errors in:
- test_execute_full_backup
- test_execute_incremental_without_full
2026-05-11 21:40:52 +02:00
alex ed64b5ff62 fix: use @pytest_asyncio.fixture for async fixtures in test_engine.py 2026-05-11 21:39:12 +02:00
alex 19987d68a0 refactor(tests): use client fixture for test isolation
Replace all AsyncClient instantiations in test_sources.py and test_jobs.py
with the shared  fixture from conftest.py. This ensures proper test
database isolation via dependency overrides.

- Remove imports of httpx AsyncClient, ASGITransport, and app
- Add client fixture parameter to all test functions
- Remove async with blocks around HTTP requests
- test_engine.py already uses db fixture correctly, no changes needed
2026-05-11 21:38:15 +02:00
alex 58c4bc7f30 fix: use ASGITransport for httpx AsyncClient in tests
- httpx.AsyncClient requires ASGITransport for FastAPI app testing
- Updated all test files to use correct API
2026-05-11 21:28:07 +02:00
alex 55ba9b62d6 fix: improve test isolation and configuration
- Use in-memory SQLite for tests to prevent conflicts
- Add try/finally for robust test cleanup
- Make database URL configurable via env var
- Make CORS origins configurable via env var
- Make SQL echo configurable via env var
2026-05-11 21:25:35 +02:00
alex 878e303cc6 feat: setup FastAPI main app with routers and test fixtures
- Main FastAPI app with all routers included
- CORS middleware for frontend
- Test fixtures with in-memory SQLite database
- Placeholder routers for future tasks
2026-05-11 21:22:55 +02:00
alex 955ed9db49 fix: jobs router session handling, schedule creation, and tests
- Use new session in background task for thread safety
- Fix schedule creation to associate with job
- Fix schedule endpoint return type
- Update tests to use AsyncClient
- Add missing tests for list, get, delete, schedule
- Add updated_at field to Schedule model
2026-05-11 21:20:31 +02:00
alex 1f1ed72494 feat: add jobs CRUD API with manual execution
- Full CRUD for backup jobs
- Manual job trigger endpoint with background execution
- Schedule creation endpoint
- Tests for job creation, update, execution, and 404 cases
2026-05-11 21:12:01 +02:00
alex 810aae1b6e test: add update and 404 tests for sources API 2026-05-11 21:01:41 +02:00
alex 0d0f41d616 feat: add sources CRUD API with tests
- Full CRUD endpoints for backup sources
- Pydantic validation for source types
- pytest tests for create, list, get, delete
2026-05-11 20:59:11 +02:00
alex b69c098cab feat: add backup engine with full/incremental support
- BackupEngine class executes jobs and creates backups
- Automatic fallback from incremental to full if no parent exists
- SHA-256 checksum calculation for integrity
- Tests for full backup and incremental fallback
2026-05-11 20:56:06 +02:00