438 tests per windows builds now
This commit is contained in:
@@ -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/);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user