import { describe, expect, it } from "bun:test";
import { isAlertContextPath, parseAlertContextTraceIdPath } from "../src/alert-context";

describe("alert context route helpers", () => {
  it("extracts a valid alert trace id from the context endpoint path", () => {
    expect(parseAlertContextTraceIdPath("/flow/alerts/alert%3Actx%2Fone/context")).toBe(
      "alert:ctx/one"
    );
  });

  it("returns null for unrelated alert paths", () => {
    expect(isAlertContextPath("/flow/alerts")).toBe(false);
    expect(parseAlertContextTraceIdPath("/flow/alerts/alert:ctx")).toBeNull();
  });

  it("rejects malformed trace ids safely", () => {
    expect(() => parseAlertContextTraceIdPath("/flow/alerts/%20/context")).toThrow();
    expect(() => parseAlertContextTraceIdPath("/flow/alerts/%24bad/context")).toThrow();
  });
});
