import { describe, expect, it } from "vitest"; import { isSafeServiceName } from "./sanitize"; describe("isSafeServiceName", () => { describe("accepts safe values", () => { it.each([ "my-service", "my_service", "my.service", "MyService123", "myteam/myservice", "myteam\\myservice", "service with spaces", "service-name.v2", "résumé-service", "サービス", "a", ])("accepts %j", (value) => { expect(isSafeServiceName(value)).toBe(true); }); it("accepts the empty string (empty/whitespace handling lives elsewhere)", () => { expect(isSafeServiceName("")).toBe(true); }); }); describe("rejects suspicious characters", () => { it.each([ ["single quote", "evil';DROP TABLE"], ["double quote", 'say "hi"'], ["semicolon", "a;b"], ["open brace", "${injected}"], ["close brace", "trailing}"], ["less-than", "