9873a8186ab345b6ee835da56d761bce80f39cd2
Backend was sending Unix timestamps as strings (e.g. '1716112800') which JavaScript Date couldn't parse. Now sends proper ISO 8601 format dates that work with new Date() in the browser.
Testing Strategy
The project uses a three-tier testing approach:
Test Categories
-
Unit Tests (
apps/api/tests/unit/)- Fast tests with no external dependencies
- Use SQLite in-memory database
- Run with:
make test-unitorpytest -m unit
-
Integration Tests (
apps/api/tests/integration/)- Test API endpoints with database
- Use PostgreSQL with transaction rollback
- Run with:
make test-integrationorpytest -m integration
-
System/E2E Tests (
e2e/)- End-to-end tests using Playwright
- Test full user journeys
- Run with:
make test-e2e
Running Tests
# Run all tests (excludes system tests by default)
make test
# Run specific categories
make test-unit # Fast unit tests only
make test-integration # Integration tests with DB
make test-system # Full stack tests
make test-e2e # Browser-based E2E tests
# Inside Docker container
docker compose exec api pytest -v -m unit
docker compose exec api pytest -v -m integration
Test Markers
Tests are marked with pytest markers:
@pytest.mark.unit- Fast, isolated tests@pytest.mark.integration- Tests with database/external services@pytest.mark.system- Full stack tests
Shared Fixtures
Common fixtures are in apps/api/tests/conftest.py:
sqlite_engine- SQLite engine for unit testspostgres_engine- PostgreSQL engine for integration testsdb_session- Database session with transaction rollbacktest_client- FastAPI TestClient instance
Description
Languages
Python
53.8%
TypeScript
36.7%
CSS
5%
HTML
3.4%
Dockerfile
0.4%
Other
0.6%