Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline (Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/* packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { resolveSandboxProvider } from "./sandbox-provider-env.js";
|
|
|
|
describe("resolveSandboxProvider", () => {
|
|
it("defaults to docker", () => {
|
|
expect(resolveSandboxProvider({})).toBe("docker");
|
|
});
|
|
|
|
it("keeps explicit none", () => {
|
|
expect(resolveSandboxProvider({ SANDBOX_PROVIDER: "none" })).toBe("none");
|
|
expect(resolveSandboxProvider({ SANDBOX_PROVIDER: "" })).toBe("none");
|
|
});
|
|
|
|
it("falls back to none when a remote provider key is missing", () => {
|
|
expect(resolveSandboxProvider({ SANDBOX_PROVIDER: "e2b" })).toBe("none");
|
|
expect(resolveSandboxProvider({ SANDBOX_PROVIDER: "daytona" })).toBe("none");
|
|
expect(resolveSandboxProvider({ SANDBOX_PROVIDER: "box" })).toBe("none");
|
|
});
|
|
|
|
it("falls back to none in production when Docker has no supervisor token", () => {
|
|
expect(
|
|
resolveSandboxProvider({
|
|
NODE_ENV: "production",
|
|
SANDBOX_PROVIDER: "docker",
|
|
}),
|
|
).toBe("none");
|
|
});
|
|
|
|
it("keeps docker in production when a supervisor token is set", () => {
|
|
expect(
|
|
resolveSandboxProvider({
|
|
NODE_ENV: "production",
|
|
SANDBOX_PROVIDER: "docker",
|
|
SANDBOX_SUPERVISOR_TOKEN: "prod-supervisor-token-with-enough-length",
|
|
}),
|
|
).toBe("docker");
|
|
});
|
|
});
|