From 51d718a21a3e4803e5ebcce06d8a87c2e9be8d80 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 28 Feb 2026 11:36:43 -0800 Subject: [PATCH] Fix: small fixes for Omada proxy (#6372) --- src/widgets/omada/proxy.js | 12 +++++++++--- src/widgets/omada/proxy.test.js | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/widgets/omada/proxy.js b/src/widgets/omada/proxy.js index 1151826da..04d173de1 100644 --- a/src/widgets/omada/proxy.js +++ b/src/widgets/omada/proxy.js @@ -95,8 +95,8 @@ export default async function omadaProxyHandler(req, res) { if (loginStatus !== 200 || loginResponseData.errorCode > 0) { return res - .status(status) - .json({ error: { message: "Error logging in to Oamda controller", url: loginUrl, data: loginResponseData } }); + .status(loginStatus) + .json({ error: { message: "Error logging in to Omada controller", url: loginUrl, data: loginResponseData } }); } const { token } = loginResponseData.result; @@ -225,7 +225,13 @@ export default async function omadaProxyHandler(req, res) { if (status !== 200 || siteResponseData.errorCode > 0) { logger.debug(`HTTP ${status} getting stats for site ${widget.site} with message ${siteResponseData.msg}`); - return res.status(500).send(data); + return res.status(status === 200 ? 500 : status).json({ + error: { + message: "Error getting stats", + url: siteStatsUrl, + data: siteResponseData, + }, + }); } const alertUrl = diff --git a/src/widgets/omada/proxy.test.js b/src/widgets/omada/proxy.test.js index 2d20431fe..060ab9a35 100644 --- a/src/widgets/omada/proxy.test.js +++ b/src/widgets/omada/proxy.test.js @@ -151,7 +151,7 @@ describe("widgets/omada/proxy", () => { await omadaProxyHandler(req, res); expect(res.statusCode).toBe(200); - expect(res.body.error.message).toBe("Error logging in to Oamda controller"); + expect(res.body.error.message).toBe("Error logging in to Omada controller"); expect(res.body.error.url).toBe("http://omada/api/v2/login"); expect(res.body.error.data).toEqual({ errorCode: 1, msg: "nope" }); }); @@ -288,7 +288,7 @@ describe("widgets/omada/proxy", () => { expect(res.body.error.message).toBe("Error switching site"); }); - it("returns 500 with the raw payload when overview stats retrieval fails (v5)", async () => { + it("returns a structured error when overview stats retrieval fails (v5)", async () => { getServiceWidget.mockResolvedValue({ url: "http://omada", username: "u", password: "p", site: "Default" }); httpProxy @@ -316,6 +316,12 @@ describe("widgets/omada/proxy", () => { await omadaProxyHandler(req, res); expect(res.statusCode).toBe(500); - expect(res.body).toBe(JSON.stringify({ errorCode: 1, msg: "bad" })); + expect(res.body).toEqual({ + error: { + message: "Error getting stats", + url: "http://omada/cid/api/v2/sites/siteid/dashboard/overviewDiagram?token=t¤tPage=1¤tPageSize=1000", + data: { errorCode: 1, msg: "bad" }, + }, + }); }); });