it("falls back to all scenarios when selection would otherwise be empty", () => { const snapshot = createIdleQaRunnerSnapshot(scenarios);
expect(snapshot.status).toBe("idle");
expect(snapshot.selection.scenarioIds).toEqual(["dm-chat-baseline", "thread-lifecycle"]);
expect(
normalizeQaRunSelection(
{
scenarioIds: [],
},
scenarios,
).scenarioIds,
).toEqual(["dm-chat-baseline", "thread-lifecycle"]);
});
it("keeps idle snapshots on static defaults so startup does not inspect auth profiles", () => {
defaultQaRuntimeModelForMode.mockReturnValue("openai/gpt-5.4");
defaultQaRuntimeModelForMode.mockClear();
it("anchors generated run output dirs under the provided repo root", () => { const outputDir = createQaRunOutputDir("/tmp/openclaw-repo");
expect(outputDir.startsWith("/tmp/openclaw-repo/.artifacts/qa-e2e/lab-")).toBe(true);
});
it("prefers the Codex OAuth default when the runtime resolver says it is available", () => {
defaultQaRuntimeModelForMode.mockImplementation((mode, options) =>
mode === "live-frontier"
? "openai/gpt-5.4"
: defaultQaProviderModelForMode(mode as QaProviderModeInput, options),
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.