438 tests per windows builds now

This commit is contained in:
KingKDot
2026-05-17 01:15:52 -05:00
parent d6b562482a
commit c2b0d31578
4 changed files with 313 additions and 0 deletions
@@ -0,0 +1,26 @@
import { describe, expect, test } from "bun:test";
import { sanitizePluginId } from "./plugin-utils";
describe("sanitizePluginId", () => {
test("accepts a plain id", () => {
expect(sanitizePluginId("my-plugin")).toBe("my-plugin");
expect(sanitizePluginId("plugin.v2_0")).toBe("plugin.v2_0");
});
test("strips path components to defend against traversal", () => {
expect(sanitizePluginId("../../../etc/passwd")).toBe("passwd");
expect(sanitizePluginId("/var/log/syslog")).toBe("syslog");
expect(sanitizePluginId("nested/dir/plugin")).toBe("plugin");
});
test("strips disallowed characters from the basename", () => {
expect(sanitizePluginId("hello world!")).toBe("helloworld");
expect(sanitizePluginId("plug$in@123")).toBe("plugin123");
});
test("throws when nothing survives sanitization", () => {
expect(() => sanitizePluginId("")).toThrow(/Invalid plugin id/);
expect(() => sanitizePluginId("!!!@@@")).toThrow(/Invalid plugin id/);
expect(() => sanitizePluginId("/")).toThrow(/Invalid plugin id/);
});
});