mirror of
https://github.com/juherr/kill-the-news.git
synced 2026-06-20 22:03:48 +00:00
refactor(admin): validate JSON feed update via @hono/zod-validator
Moves validation of POST /api/feeds/:feedId/update from inline
schema.parse() to zValidator middleware. The route now receives
typed validated data via c.req.valid("json"), and returns a
structured {success: false, error: ZodIssue[]} on invalid input.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -187,6 +187,23 @@ describe("Admin Routes", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("API Feed Update", () => {
|
||||
it("returns 400 with structured validation error for empty title", async () => {
|
||||
const authCookie = await loginAndGetCookie();
|
||||
const res = await request("/admin/api/feeds/test-feed/update", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
Cookie: authCookie,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({ title: "", description: "desc" }),
|
||||
});
|
||||
expect(res.status).toBe(400);
|
||||
const body = await res.json<{ success: boolean }>();
|
||||
expect(body.success).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Feed Management", () => {
|
||||
it("should prevent feed deletion without authentication", async () => {
|
||||
const res = await request("/admin/feeds/test-feed/delete", {
|
||||
|
||||
Reference in New Issue
Block a user