35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { BubblewrapBackend } from "../bubblewrap-backend.js";
|
|
import { NativeSandboxBackend } from "../native.js";
|
|
import { resolveSandboxBackend } from "../index.js";
|
|
|
|
describe("resolveSandboxBackend", () => {
|
|
it("returns native for undefined backend", () => {
|
|
expect(resolveSandboxBackend()).toBeInstanceOf(NativeSandboxBackend);
|
|
});
|
|
|
|
it("returns native for explicit native backend", () => {
|
|
expect(resolveSandboxBackend({ backendId: "native" })).toBeInstanceOf(NativeSandboxBackend);
|
|
});
|
|
|
|
it("returns bubblewrap on linux when requested", () => {
|
|
const backend = resolveSandboxBackend({ backendId: "bubblewrap" });
|
|
if (process.platform === "linux") {
|
|
expect(backend).toBeInstanceOf(BubblewrapBackend);
|
|
return;
|
|
}
|
|
expect(backend).toBeInstanceOf(NativeSandboxBackend);
|
|
});
|
|
|
|
it("returns sandbox-exec on darwin when requested", async () => {
|
|
const { SandboxExecBackend } = await import("../sandbox-exec-backend.js");
|
|
const backend = resolveSandboxBackend({ backendId: "sandbox-exec" });
|
|
if (process.platform === "darwin") {
|
|
expect(backend).toBeInstanceOf(SandboxExecBackend);
|
|
return;
|
|
}
|
|
expect(backend).toBeInstanceOf(NativeSandboxBackend);
|
|
});
|
|
});
|