diff --git a/backend/app/api/notifications.py b/backend/app/api/notifications.py index 8c026c1..c53beea 100644 --- a/backend/app/api/notifications.py +++ b/backend/app/api/notifications.py @@ -116,7 +116,7 @@ async def test_ntfy( return NotificationTestResult(status="error", detail="Topic URL is required") headers: dict[str, str] = { - "Title": "PocketVeto — Test Notification", + "Title": "PocketVeto: Test Notification", "Priority": "default", "Tags": "white_check_mark", } diff --git a/frontend/app/notifications/page.tsx b/frontend/app/notifications/page.tsx index 95c6671..2c783b6 100644 --- a/frontend/app/notifications/page.tsx +++ b/frontend/app/notifications/page.tsx @@ -89,8 +89,11 @@ export default function NotificationsPage() { ntfy_password: authMethod === "basic" ? password : "", }); setNtfyTestResult(result); - } catch { - setNtfyTestResult({ status: "error", detail: "Request failed — check your topic URL" }); + } catch (e: unknown) { + const detail = + (e as { response?: { data?: { detail?: string } } })?.response?.data?.detail + ?? (e instanceof Error ? e.message : "Request failed"); + setNtfyTestResult({ status: "error", detail }); } finally { setNtfyTesting(false); } @@ -102,8 +105,11 @@ export default function NotificationsPage() { try { const result = await notificationsAPI.testRss(); setRssTestResult(result); - } catch { - setRssTestResult({ status: "error", detail: "Feed check failed" }); + } catch (e: unknown) { + const detail = + (e as { response?: { data?: { detail?: string } } })?.response?.data?.detail + ?? (e instanceof Error ? e.message : "Feed check failed"); + setRssTestResult({ status: "error", detail }); } finally { setRssTesting(false); }