foxygit / RPA-Remisser Log in
commits tags

/webui/frontend/src/lib/runvars.test.ts · 1.2 KB

raw
import { describe, expect, it } from "vitest";
import { defaultsFor, flowHasRunParams, parseOptions, resolveRunVars } from "./runvars";

describe("runvars", () => {
  it("parseOptions splits and trims", () => {
    expect(parseOptions("a, b ,c")).toEqual(["a", "b", "c"]);
    expect(parseOptions("")).toEqual([]);
    expect(parseOptions(undefined)).toEqual([]);
  });

  it("defaultsFor only includes inputs with a non-empty default", () => {
    expect(
      defaultsFor([
        { name: "a", default: "4" },
        { name: "b", default: "" },
        { name: "c" },
      ]),
    ).toEqual({ a: "4" });
  });

  it("resolveRunVars: adhoc overrides fields, blank adhoc names skipped", () => {
    expect(
      resolveRunVars({ org: "4", kö: "20" }, [
        { name: "org", value: "9" },
        { name: "  ", value: "ignored" },
        { name: "ny", value: "x" },
      ]),
    ).toEqual({ org: "9", kö: "20", ny: "x" });
  });

  it("flowHasRunParams", () => {
    expect(flowHasRunParams({})).toBe(false);
    expect(flowHasRunParams({ inputs: [] })).toBe(false);
    expect(flowHasRunParams({ inputs: [{ name: "a" }] })).toBe(true);
    expect(flowHasRunParams({ input_sets: { Test: {} } })).toBe(true);
  });
});