escape-like.test.ts 678 B

1234567891011121314151617181920212223
  1. import { describe, expect, test } from "vitest";
  2. import { escapeLike } from "@/repository/_shared/like";
  3. describe("escapeLike", () => {
  4. test("普通字符串保持不变", () => {
  5. expect(escapeLike("abc-123")).toBe("abc-123");
  6. });
  7. test("%/_/\\\\ 应被转义(用于 LIKE ... ESCAPE '\\\\')", () => {
  8. expect(escapeLike("%")).toBe("\\%");
  9. expect(escapeLike("_")).toBe("\\_");
  10. expect(escapeLike("\\")).toBe("\\\\");
  11. });
  12. test("组合输入应按字面量匹配语义转义", () => {
  13. expect(escapeLike("a%b_c\\d")).toBe("a\\%b\\_c\\\\d");
  14. });
  15. test("空字符串应返回空字符串", () => {
  16. expect(escapeLike("")).toBe("");
  17. });
  18. });