mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-06 23:55:12 +00:00
90 lines
2.4 KiB
TypeScript
90 lines
2.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { resolveBootstrapMode } from "./bootstrap-mode.js";
|
|
|
|
describe("resolveBootstrapMode", () => {
|
|
it("returns none when bootstrap is not pending", () => {
|
|
expect(
|
|
resolveBootstrapMode({
|
|
bootstrapPending: false,
|
|
runKind: "default",
|
|
isInteractiveUserFacing: true,
|
|
isPrimaryRun: true,
|
|
isCanonicalWorkspace: true,
|
|
hasBootstrapFileAccess: true,
|
|
}),
|
|
).toBe("none");
|
|
});
|
|
|
|
it("returns full for primary interactive canonical runs with file access", () => {
|
|
expect(
|
|
resolveBootstrapMode({
|
|
bootstrapPending: true,
|
|
runKind: "default",
|
|
isInteractiveUserFacing: true,
|
|
isPrimaryRun: true,
|
|
isCanonicalWorkspace: true,
|
|
hasBootstrapFileAccess: true,
|
|
}),
|
|
).toBe("full");
|
|
});
|
|
|
|
it("returns limited for primary interactive copied-sandbox runs with file access", () => {
|
|
expect(
|
|
resolveBootstrapMode({
|
|
bootstrapPending: true,
|
|
runKind: "default",
|
|
isInteractiveUserFacing: true,
|
|
isPrimaryRun: true,
|
|
isCanonicalWorkspace: false,
|
|
hasBootstrapFileAccess: true,
|
|
}),
|
|
).toBe("limited");
|
|
});
|
|
|
|
it("returns none for cron, heartbeat, and non-primary runs", () => {
|
|
expect(
|
|
resolveBootstrapMode({
|
|
bootstrapPending: true,
|
|
runKind: "cron",
|
|
isInteractiveUserFacing: true,
|
|
isPrimaryRun: true,
|
|
isCanonicalWorkspace: true,
|
|
hasBootstrapFileAccess: true,
|
|
}),
|
|
).toBe("none");
|
|
expect(
|
|
resolveBootstrapMode({
|
|
bootstrapPending: true,
|
|
runKind: "heartbeat",
|
|
isInteractiveUserFacing: true,
|
|
isPrimaryRun: true,
|
|
isCanonicalWorkspace: true,
|
|
hasBootstrapFileAccess: true,
|
|
}),
|
|
).toBe("none");
|
|
expect(
|
|
resolveBootstrapMode({
|
|
bootstrapPending: true,
|
|
runKind: "default",
|
|
isInteractiveUserFacing: true,
|
|
isPrimaryRun: false,
|
|
isCanonicalWorkspace: true,
|
|
hasBootstrapFileAccess: true,
|
|
}),
|
|
).toBe("none");
|
|
});
|
|
|
|
it("returns limited when the run cannot access bootstrap files normally", () => {
|
|
expect(
|
|
resolveBootstrapMode({
|
|
bootstrapPending: true,
|
|
runKind: "default",
|
|
isInteractiveUserFacing: true,
|
|
isPrimaryRun: true,
|
|
isCanonicalWorkspace: true,
|
|
hasBootstrapFileAccess: false,
|
|
}),
|
|
).toBe("limited");
|
|
});
|
|
});
|