summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages/session/session-model-helpers.test.ts
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-13 11:05:08 -0500
committerGitHub <[email protected]>2026-03-13 11:05:08 -0500
commit4ad8116ce37a0e77e7f3c0e9e4e1002bba05b15e (patch)
treeb7e5ed2b05aabb5ed5134520c4eb485c52eb5333 /packages/app/src/pages/session/session-model-helpers.test.ts
parent5c7088338c07ad632834ebd4a87feb23d255fb8a (diff)
downloadopencode-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.ts133
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"])
})
})