Files
cfw-autumn/server/tests/unit/escapeIlikePattern.test.ts
2026-05-25 19:50:22 +01:00

40 lines
1.0 KiB
TypeScript

import { describe, expect, test } from "bun:test";
const escapeIlikePattern = (input: string): string =>
input.replace(/[%_\\]/g, "\\$&");
describe("escapeIlikePattern", () => {
test("passes through plain text unchanged", () => {
expect(escapeIlikePattern("hello")).toBe("hello");
});
test("escapes % wildcard", () => {
expect(escapeIlikePattern("50%")).toBe("50\\%");
});
test("escapes _ single-char wildcard", () => {
expect(escapeIlikePattern("us_r")).toBe("us\\_r");
});
test("escapes backslash", () => {
expect(escapeIlikePattern("path\\to")).toBe("path\\\\to");
});
test("escapes multiple wildcards in one string", () => {
expect(escapeIlikePattern("a%b_c\\d")).toBe("a\\%b\\_c\\\\d");
});
test("handles empty string", () => {
expect(escapeIlikePattern("")).toBe("");
});
test("leaves normal entity IDs unchanged", () => {
expect(escapeIlikePattern("dispersive-preview")).toBe(
"dispersive-preview",
);
expect(escapeIlikePattern("6a13cf0b9b6845d6edbb4aa4")).toBe(
"6a13cf0b9b6845d6edbb4aa4",
);
});
});