mirror of
https://github.com/gethomepage/homepage.git
synced 2026-09-28 06:51:17 -07:00
Chore: add proxmox param validation
Docker CI / Docker Build & Push (push) Has been cancelled
Lint / Linting Checks (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Release Drafter / Auto Label PR (push) Has been cancelled
Tests / vitest (1) (push) Has been cancelled
Tests / vitest (2) (push) Has been cancelled
Tests / vitest (3) (push) Has been cancelled
Tests / vitest (4) (push) Has been cancelled
Docker CI / Docker Build & Push (push) Has been cancelled
Lint / Linting Checks (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Release Drafter / Auto Label PR (push) Has been cancelled
Tests / vitest (1) (push) Has been cancelled
Tests / vitest (2) (push) Has been cancelled
Tests / vitest (3) (push) Has been cancelled
Tests / vitest (4) (push) Has been cancelled
This commit is contained in:
@@ -37,6 +37,33 @@ describe("pages/api/proxmox/stats/[...service]", () => {
|
||||
expect(res.body).toEqual({ error: "Proxmox node parameter is required" });
|
||||
});
|
||||
|
||||
it.each([
|
||||
["type", { service: ["pve", "100"], type: "../../cluster/resources#" }, "Invalid Proxmox type parameter"],
|
||||
["node", { service: ["../pve", "100"], type: "qemu" }, "Invalid Proxmox node parameter"],
|
||||
["VMID", { service: ["pve", "../../../cluster/resources#"], type: "qemu" }, "Invalid Proxmox VMID parameter"],
|
||||
])("rejects an invalid %s path parameter", async (_parameter, query, error) => {
|
||||
const req = { query };
|
||||
const res = createMockRes();
|
||||
|
||||
await handler(req, res);
|
||||
|
||||
expect(res.statusCode).toBe(400);
|
||||
expect(res.body).toEqual({ error });
|
||||
expect(getProxmoxConfig).not.toHaveBeenCalled();
|
||||
expect(httpProxy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("rejects an array-valued type parameter", async () => {
|
||||
const req = { query: { service: ["pve", "100"], type: ["qemu", "../../cluster/resources#"] } };
|
||||
const res = createMockRes();
|
||||
|
||||
await handler(req, res);
|
||||
|
||||
expect(res.statusCode).toBe(400);
|
||||
expect(res.body).toEqual({ error: "Invalid Proxmox type parameter" });
|
||||
expect(httpProxy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("returns 500 when proxmox config is missing", async () => {
|
||||
getProxmoxConfig.mockReturnValue(null);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user