feat(FN-4636): complete Step 3 — add sandbox backend resolver
Fusion-Task-Id: FN-4636 Fusion-Task-Lineage: 38ff2f48-4cb1-42c2-8f64-eb3b8d3d7f2c
This commit is contained in:
18
packages/engine/src/sandbox/__tests__/resolve.test.ts
Normal file
18
packages/engine/src/sandbox/__tests__/resolve.test.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
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 native for unknown backend id", () => {
|
||||
expect(resolveSandboxBackend({ backendId: "bubblewrap" })).toBeInstanceOf(NativeSandboxBackend);
|
||||
});
|
||||
});
|
||||
29
packages/engine/src/sandbox/index.ts
Normal file
29
packages/engine/src/sandbox/index.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { NativeSandboxBackend } from "./native.js";
|
||||
import type { SandboxBackend, SandboxCapabilities } from "./types.js";
|
||||
|
||||
export type {
|
||||
SandboxBackend,
|
||||
SandboxCapabilities,
|
||||
SandboxPolicy,
|
||||
SandboxRunOptions,
|
||||
SandboxRunResult,
|
||||
} from "./types.js";
|
||||
|
||||
let sandboxBackendOverrideForTests: SandboxBackend | null = null;
|
||||
|
||||
export function __setSandboxBackendForTests(backend: SandboxBackend | null): void {
|
||||
sandboxBackendOverrideForTests = backend;
|
||||
}
|
||||
|
||||
export function __resetSandboxBackendForTests(): void {
|
||||
sandboxBackendOverrideForTests = null;
|
||||
}
|
||||
|
||||
export function resolveSandboxBackend(_options?: { backendId?: SandboxCapabilities["id"] }): SandboxBackend {
|
||||
if (sandboxBackendOverrideForTests) {
|
||||
return sandboxBackendOverrideForTests;
|
||||
}
|
||||
|
||||
// TODO(FN-4637/FN-4638/FN-4642): branch by backend id once additional implementations land.
|
||||
return new NativeSandboxBackend();
|
||||
}
|
||||
Reference in New Issue
Block a user