import pytest from unittest.mock import MagicMock, patch, AsyncMock from datetime import datetime @pytest.fixture def mock_db(): return MagicMock() class TestSnapshotsEndpoint: def test_snapshots_endpoint_exists(self, mock_db): with patch("app.main.SessionLocal", return_value=mock_db): from fastapi.testclient import TestClient from app.main import app mock_db.query.return_value.order_by.return_value.limit.return_value.all.return_value = [] with TestClient(app) as client: response = client.get("/snapshots?limit=1") assert response.status_code == 200 class TestListeningLogEndpoint: def test_listening_log_endpoint_exists(self, mock_db): with patch("app.main.SessionLocal", return_value=mock_db): from fastapi.testclient import TestClient from app.main import app mock_db.query.return_value.options.return_value.filter.return_value.order_by.return_value.limit.return_value.all.return_value = [] with TestClient(app) as client: response = client.get("/listening-log?days=7&limit=100") assert response.status_code == 200 class TestSessionsEndpoint: def test_sessions_endpoint_exists(self, mock_db): with patch("app.main.SessionLocal", return_value=mock_db): from fastapi.testclient import TestClient from app.main import app mock_db.query.return_value.options.return_value.filter.return_value.order_by.return_value.all.return_value = [] with TestClient(app) as client: response = client.get("/sessions?days=7") assert response.status_code == 200 data = response.json() assert "session_list" in data