diff options
| author | Adam <[email protected]> | 2026-03-13 11:05:08 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-13 11:05:08 -0500 |
| commit | 4ad8116ce37a0e77e7f3c0e9e4e1002bba05b15e (patch) | |
| tree | b7e5ed2b05aabb5ed5134520c4eb485c52eb5333 /packages/app/src/pages/session/session-model-helpers.test.ts | |
| parent | 5c7088338c07ad632834ebd4a87feb23d255fb8a (diff) | |
| download | opencode-4ad8116ce37a0e77e7f3c0e9e4e1002bba05b15e.tar.gz opencode-4ad8116ce37a0e77e7f3c0e9e4e1002bba05b15e.zip | |
fix(app): model selection persist by session (#17348)
Diffstat (limited to 'packages/app/src/pages/session/session-model-helpers.test.ts')
| -rw-r--r-- | packages/app/src/pages/session/session-model-helpers.test.ts | 133 |
1 files changed, 13 insertions, 120 deletions
diff --git a/packages/app/src/pages/session/session-model-helpers.test.ts b/packages/app/src/pages/session/session-model-helpers.test.ts index 5f554dcd3..319db805d 100644 --- a/packages/app/src/pages/session/session-model-helpers.test.ts +++ b/packages/app/src/pages/session/session-model-helpers.test.ts @@ -14,145 +14,38 @@ const message = (input?: Partial<Pick<UserMessage, "agent" | "model" | "variant" }) as UserMessage describe("syncSessionModel", () => { - test("restores the last message model and variant", () => { + test("restores the last message through session state", () => { const calls: unknown[] = [] syncSessionModel( { - agent: { - current() { - return undefined - }, - set(value) { - calls.push(["agent", value]) - }, - }, - model: { - set(value) { - calls.push(["model", value]) - }, - current() { - return { id: "claude-sonnet-4", provider: { id: "anthropic" } } - }, - variant: { - set(value) { - calls.push(["variant", value]) - }, - }, - }, - }, - message({ variant: "high" }), - ) - - expect(calls).toEqual([ - ["agent", "build"], - ["model", { providerID: "anthropic", modelID: "claude-sonnet-4" }], - ["variant", "high"], - ]) - }) - - test("skips variant when the model falls back", () => { - const calls: unknown[] = [] - - syncSessionModel( - { - agent: { - current() { - return undefined - }, - set(value) { - calls.push(["agent", value]) - }, - }, - model: { - set(value) { - calls.push(["model", value]) - }, - current() { - return { id: "gpt-5", provider: { id: "openai" } } - }, - variant: { - set(value) { - calls.push(["variant", value]) - }, + session: { + restore(value) { + calls.push(value) }, + reset() {}, }, }, message({ variant: "high" }), ) - expect(calls).toEqual([ - ["agent", "build"], - ["model", { providerID: "anthropic", modelID: "claude-sonnet-4" }], - ]) + expect(calls).toEqual([message({ variant: "high" })]) }) }) describe("resetSessionModel", () => { - test("restores the current agent defaults", () => { - const calls: unknown[] = [] + test("clears draft session state", () => { + const calls: string[] = [] resetSessionModel({ - agent: { - current() { - return { - model: { providerID: "anthropic", modelID: "claude-sonnet-4" }, - variant: "high", - } - }, - set() {}, - }, - model: { - set(value) { - calls.push(["model", value]) - }, - current() { - return undefined - }, - variant: { - set(value) { - calls.push(["variant", value]) - }, - }, - }, - }) - - expect(calls).toEqual([ - ["model", { providerID: "anthropic", modelID: "claude-sonnet-4" }], - ["variant", "high"], - ]) - }) - - test("clears the variant when the agent has none", () => { - const calls: unknown[] = [] - - resetSessionModel({ - agent: { - current() { - return { - model: { providerID: "anthropic", modelID: "claude-sonnet-4" }, - } - }, - set() {}, - }, - model: { - set(value) { - calls.push(["model", value]) - }, - current() { - return undefined - }, - variant: { - set(value) { - calls.push(["variant", value]) - }, + session: { + reset() { + calls.push("reset") }, + restore() {}, }, }) - expect(calls).toEqual([ - ["model", { providerID: "anthropic", modelID: "claude-sonnet-4" }], - ["variant", undefined], - ]) + expect(calls).toEqual(["reset"]) }) }) |
