evcc-io/assets/js/utils/placeholder.test.ts
Maschga d07a0741ec
chore: use vite+ (#32297)
Co-authored-by: Michael Geers <michael@geers.tv>
2026-07-31 11:43:57 +02:00

26 lines
1.1 KiB
TypeScript

import { describe, it, expect } from "vite-plus/test";
import { extractPlaceholders as extract, replacePlaceholders as replace } from "./placeholder";
describe("placeholder", () => {
it("extract", () => {
expect(extract("homes")).toEqual([]);
expect(extract("")).toEqual([]);
expect(extract("a/{home}/b")).toEqual(["home"]);
expect(extract("{a}/{b}")).toEqual(["a", "b"]);
expect(extract("{p1}/{p2}")).toEqual(["p1", "p2"]);
expect(extract("{a_b}/{c_d}")).toEqual(["a_b", "c_d"]);
expect(extract("{a}/{a}")).toEqual(["a", "a"]);
});
it("replace", () => {
expect(replace("homes", {})).toBe("homes");
expect(replace("a/{b}/c", { b: "x" })).toBe("a/x/c");
expect(replace("{a}/{b}", { a: "1", b: "2" })).toBe("1/2");
expect(replace("{a}", { a: "b c" })).toBe("b%20c");
expect(replace("{a}", { a: "b/c" })).toBe("b%2Fc");
expect(replace("{a}", { a: "b+c" })).toBe("b%2Bc");
expect(replace("{a}", {})).toBe("{a}");
expect(replace("{a}", { a: "" })).toBe("");
expect(replace("{a}/{b}", { a: "x" })).toBe("x/{b}");
});
});