From 5261349613086cb082e39ddc132dbfa289d85dd3 Mon Sep 17 00:00:00 2001 From: Flying Musk Date: Sat, 23 May 2026 20:26:45 -0700 Subject: [PATCH] test(ui): cover PromQL URL-sensitive characters Signed-off-by: Flying Musk --- .../src/pages/query/urlStateEncoding.test.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/web/ui/mantine-ui/src/pages/query/urlStateEncoding.test.ts b/web/ui/mantine-ui/src/pages/query/urlStateEncoding.test.ts index aef8369cd5..8f2717c85a 100644 --- a/web/ui/mantine-ui/src/pages/query/urlStateEncoding.test.ts +++ b/web/ui/mantine-ui/src/pages/query/urlStateEncoding.test.ts @@ -573,6 +573,18 @@ describe("encode and decode roundtrip", () => { expect(decoded[0].showTree).toBe(original.showTree); }); + test("roundtrip preserves PromQL expressions with URL-sensitive characters", () => { + const expr = + 'sum by (job) (rate(http_requests_total{status!="500",handler=~"/api/v1/.+"}[5m]))'; + + const original = createPanel({ expr }); + const encoded = encodePanelOptionsToURLParams([original]); + const decoded = decodePanelOptionsFromURLParams(encoded.toString()); + + expect(decoded).toHaveLength(1); + expect(decoded[0].expr).toBe(expr); + }); + test("roundtrip preserves visualizer settings", () => { const original = createPanel({ visualizer: {