mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 07:00:43 +00:00
test: cover session-scoped model overrides (#74265)
This commit is contained in:
committed by
GitHub
parent
e5a5ea1072
commit
7be65cd798
@@ -760,6 +760,30 @@ describe("handleDirectiveOnly model persist behavior (fixes #1435)", () => {
|
||||
expect(sessionEntry.liveModelSwitchPending).toBe(true);
|
||||
});
|
||||
|
||||
it("persists /model only on the targeted session entry", async () => {
|
||||
const targetEntry = createSessionEntry();
|
||||
const otherEntry = createSessionEntry();
|
||||
const sessionStore = {
|
||||
[sessionKey]: targetEntry,
|
||||
"agent:main:dm:other": otherEntry,
|
||||
};
|
||||
|
||||
await handleDirectiveOnly(
|
||||
createHandleParams({
|
||||
directives: parseInlineDirectives("/model openai/gpt-4o"),
|
||||
sessionEntry: targetEntry,
|
||||
sessionStore,
|
||||
}),
|
||||
);
|
||||
|
||||
expect(targetEntry.providerOverride).toBe("openai");
|
||||
expect(targetEntry.modelOverride).toBe("gpt-4o");
|
||||
expect(targetEntry.modelOverrideSource).toBe("user");
|
||||
expect(otherEntry.providerOverride).toBeUndefined();
|
||||
expect(otherEntry.modelOverride).toBeUndefined();
|
||||
expect(otherEntry.modelOverrideSource).toBeUndefined();
|
||||
});
|
||||
|
||||
it("remaps unsupported stored thinking levels when persisting a model switch", async () => {
|
||||
const sessionEntry = createSessionEntry({ thinkingLevel: "adaptive" });
|
||||
const { persisted } = await persistModelDirectiveForTest({
|
||||
|
||||
@@ -320,6 +320,30 @@ describe("cron model formatting and precedence edge cases", () => {
|
||||
it("falls through to default when no override is present", async () => {
|
||||
await expectDefaultSelectedModel();
|
||||
});
|
||||
|
||||
it("does not treat another chat session /model override as a global cron default", async () => {
|
||||
const chatSessionAfterModelDirective = {
|
||||
providerOverride: "openai",
|
||||
modelOverride: "gpt-4.1-mini",
|
||||
};
|
||||
|
||||
await expectSelectedModel(
|
||||
{ sessionEntry: chatSessionAfterModelDirective },
|
||||
{ provider: "openai", model: "gpt-4.1-mini" },
|
||||
);
|
||||
await expectDefaultSelectedModel({ sessionEntry: {} });
|
||||
await expectSelectedModel(
|
||||
{
|
||||
sessionEntry: {},
|
||||
payload: {
|
||||
kind: "agentTurn",
|
||||
message: DEFAULT_MESSAGE,
|
||||
model: "anthropic/claude-sonnet-4-6",
|
||||
},
|
||||
},
|
||||
{ provider: "anthropic", model: "claude-sonnet-4-6" },
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("sequential model switches (CI failure regression)", () => {
|
||||
|
||||
Reference in New Issue
Block a user