"""Router tests - Settings endpoints.""" import tempfile from app.models.settings import UserSetting class TestGetSettings: def test_default_settings(self, client): r = client.get("/api/settings") assert r.status_code == 200 data = r.json() assert data["audio_quality"] == "high" assert data["theme"] == "dark" assert data["user_name"] == "User" assert data["auto_transcode"] is True def test_custom_settings(self, client, db_module): db = db_module.SessionLocal() s = UserSetting(key="audio_quality", value="medium") db.add(s) db.commit() db.close() r = client.get("/api/settings") assert r.status_code == 200 assert r.json()["audio_quality"] == "medium" class TestUpdateSettings: def test_update(self, client): r = client.put("/api/settings", json={ "audio_quality": "low", "theme": "light", "user_name": "TestUser" }) assert r.status_code == 200 assert r.json()["message"] == "Settings updated" def test_update_persists(self, client): client.put("/api/settings", json={"audio_quality": "high"}) r = client.get("/api/settings") assert r.json()["audio_quality"] == "high" class TestServers: def test_list_servers(self, client): r = client.get("/api/settings/servers") assert r.status_code == 200 assert isinstance(r.json(), list) def test_add_server(self, client): tmpdir = tempfile.mkdtemp() r = client.post("/api/settings/servers", params={"path": tmpdir, "name": "Test"}) assert r.status_code == 200 assert r.json()["path"] == tmpdir def test_add_server_not_exists(self, client): r = client.post("/api/settings/servers", params={"path": "/nonexistent/path"}) assert r.status_code == 400 def test_remove_server(self, client): tmpdir = tempfile.mkdtemp() client.post("/api/settings/servers", params={"path": tmpdir}) r = client.delete("/api/settings/servers/0") assert r.status_code == 200 def test_remove_server_not_found(self, client): r = client.delete("/api/settings/servers/0") assert r.status_code == 404